Connaitre le nom du titre de menu cliqué

Résolu
cs_andrebernard Messages postés 404 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 4 septembre 2013 - 7 nov. 2007 à 17:04
cs_andrebernard Messages postés 404 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 4 septembre 2013 - 8 nov. 2007 à 09:25
Bonjour à tous

Je voudrais savoir si il est possible de connaitre le nom du titre de menu sur lequel on a cliqué.

Merci et bonne journée

14 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 nov. 2007 à 09:10
Une autre façon de monter à la barre fixe :

Private Sub Titre2_Click()
 Static toto As Boolean
 If Not toto Then toto = Not toto: Exit Sub
 Titre1.Enabled = False
 toto = Not toto
End Sub


 


 


 
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 nov. 2007 à 17:27
Salut ,


Quel genre de menu ? Où est le menu ?


Je te dirais de voir la propriété : Caption


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
0
cs_andrebernard Messages postés 404 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 4 septembre 2013 1
7 nov. 2007 à 17:50
Bonjour EXPLOREUR

Si on créé un menu avec le createur de menu.par exemple :

Titre1
...Menu1
...Menu2
Titre2
...Menu11
...Menu21

Comment ferais tu pour savoir sur quel "titre" on viens de cliquer (Titre1 ou titre2)

Car le probleme, c'est que lorsque l'on clique sur Titre1, on récupere bien l'evenement avec Titre1_Click(), jusque là pas de probleme, mais si on déplace la souris à droite sans descendre sur menu1 ou menu2, c'est l'evenement Titre2_Click() qui est généré alors que l'on a pas cliqué dessus mais juste déplacé la souris sur lui, VB enfonce le bouton à notre place.
Donc j'aimerais trouver une combine qui m'assure que j'ai bien cliqué sur Titre2 et non pas déplacé la souris apres avoir cliqué sur Titre1
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 nov. 2007 à 17:57
 VB enfonce le bouton à notre place

Ah le coquin !!!

Voyons voir avec quel code IL prend de telles libertés !!!

Quels autres évènements souris utilises-tu dans ton projet ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
7 nov. 2007 à 17:58
Une combine simple serait de ne pas déplacer la souris :-p
T'as pas de problème quand tu utilises les menus d'internet explorer, word, excel, ou n'importe quel programme, si? Parce que ça fonctionne exactement pareil, et je n'ai encore jamais vu personne se plaindre ;-P
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
7 nov. 2007 à 17:59
Non, mais plus sérieusementç ça doit pouvoir se faire, oui :) jmfmarques va sûrement t'expliquer tout ça, c'est lui l'expert :p
0
cs_andrebernard Messages postés 404 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 4 septembre 2013 1
7 nov. 2007 à 18:22
T'as raison mstarsup5 en fait c'est apparement une fonction de windows.

Donc loin de moi l'intention de profaner le temple de bill


Ce que j'aimerais c'est capter l'evenement clic sur le menu, mais bien le clic, pas le clic "virtuel" de bill.

Le fait qu'il déroule le menu à ma place en cliquant lui meme sur le titre2 ne me dérange pas vraiment, mais je voudrais avoir un evenement qui lui ne se fait pas avoir et detecte bien que je n'ai pas cliqué, mais juste déplacé, donc bien avoir un évenement distinct par clic.
0
cs_andrebernard Messages postés 404 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 4 septembre 2013 1
7 nov. 2007 à 18:26
Bonjour JmfMarques


VB enfonce le bouton à notre place
Ah le coquin !!!
Voyons voir avec quel code IL prend de telles libertés !!!
Quels autres évènements souris utilises-tu dans ton projet ?

En fait c'est un comportement normal, mais comment détecter un clic sur chaque Titre ou alors encore mieux, détecter un clic sur n'importe quel endroit du menu et si c'est sur un titre remonter son nom "Titre1" ou "Titre2" ou  0 si c'est à coté des titres
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 nov. 2007 à 18:59
Comprends pas !

Un évènement est un évènement Subi par un contrôle (ou un item de menu) VB. L'évènement Click est un évènement. C'est l'utilisateur qui, en cliquant, le génère ... Et aucun évènement Clixk n'est subi par un contrôle ou un article de menu s'il n'y a pas de click fait sur ce contrôle ou cet article de menu.

N'aurais-tu pâs tenté (je m'interroge) de te substituer à VB (je ne sais pas, moi... en utilisant l'évènement click d'autre chose ... de ta Form, peut-être ?...)

Montre-nous donc ton code, s'il te plait (sinon on va jouer longtemps aux devinettes).
0
cs_andrebernard Messages postés 404 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 4 septembre 2013 1
8 nov. 2007 à 05:02
Voila en fait je n'ai pas vraiment de code.
Je voulais activer ou desactiver des menus selon si j'avais cliqué sur l'un ou l'autre.

Ce qui m'embete c'est cette histoire de ne pas avoir réellement cliqué, c'est à dire appuyé sur le bouton gauche
de la souris sur le titre2.
Il m'aurait fallu un evenement qui détecte le CLIC sur le Titre2 et non pas un pseudo clic suite à un déplacement qui peut etre accidentel.
Dans les autres actions il faut bien faire l'appui sur le bouton gauche ou droit de la souris pour que l'evenement se genere, alors pourquoi dans ce cas il se genere tout seul ?
J'aurais plutot vu un evenement move (qui n'existe pas d'ailleur pour les menus) mais pas clic, car clic veux bien dire que j'appui sur le bouton

Je t'ai fait en petit code pour essayer de m'expliquer mieux, car je reconnais que ce n'ai pas simple.

http://erdsjb.free.fr/Clic.zip

Merci de ta patience
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
8 nov. 2007 à 07:40
Salut,

Je viens d'essayer ton code, et c'est bien la première fois que je m'appercois de cela !

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
8 nov. 2007 à 08:08
Alors moi j'ai une réponse:

Ton bouton Titre2 étant sensé se dérouler tout seul quand tu passes dessus (si tu as déjà appuyé qq part sur le menu) (et puisqu'il a des sous titres !!!) ça ne sert à rien de faire titre2_click. Si tu fais titre2_click (ce qui ne sert à rien puisque c'est un menu déroulant), ton truc se produit.
Si, par contre, ton titre2 nécessite réellement un clic pour être activé (s'il n'a pas de sous titres), alors dans ce cas, le bug que tu as trouvé ne "fonctionne plus", parce que là, windows attendra que tu cliques effectivement dessus.

On pourrait se dire que les types de windows ont oublié de prévoir que si on appuie sur un menu déroulant, on peut vouloir que quelque chose se passe en plus du menu qui se déroule.

Mais si on y réfléchit bien, sachant que si on clique sur titre 1 pour voir son menu dérouler, qu'on lache le bouton, et si on place la souris (sans cliquer) sur titre2, alors le menu titre2 va se dérouler. Alors là on va avoir un problème, c'est que si jamais tu n'as pas envie d'exécuter un truc qu'il y a dans titre2 (tu passes ta souris sur le titre2 en essayant d'aller sur titre3 par exemple), soit ton application liée à titre2 quand tu cliques dessus se lance alors que tu ne le souhaites pas (tu veux juste aller sur titre3...), ce qui est chiant, soit l'appli ne se lance pas, et dans ce cas tu peux choisir les menus dans le déroulant de titre2 sans avoir lancé l'application que tu voulais à la base lancer en cliquant sur ton titre2.

Dans tous les cas, on a un problème si on lie une application au clic d'un titre du menu qui peut se dérouler.
Soit l'application se lance toute seule sans que tu le veuilles rien qu'en passant sur le titre, soit elle requiert un clic, mais comme si tu passes sur le titre, le menu se déroule tout seul, y va y avoir problème...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 nov. 2007 à 08:42
C'est parce que l'évènement clic d'un élément du menu n'est pas prévu pour la chose !

Si tu veux t'en sortir, il te faudra faire un peu d'acrobatie ...

L'ancien gymnaste intervient donc

Private toto As Boolean

Private Sub Titre1_Click()
  toto = False
End Sub


Private Sub Titre2_Click()
  If Not toto Then toto = Not toto: Exit Sub
  Titre1.Enabled = False
End Sub


Voilà ce dont tu dois t'inspirer :

Ce n'est qu'une fois sorti de titre2 (quand il n'est plus déroulé) qu'en recliquant dessus que tu inhiberas ainsi Titre1
Tu me dois un carambar...
0
cs_andrebernard Messages postés 404 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 4 septembre 2013 1
8 nov. 2007 à 09:25
Merci à tous pour votre aide.
J'ai la facheuse manie de vouloir faire ce qui n'est pas possible.
J'aurais du etre beta testeur chez bilou.

Pour le jongleur JMFMARQUES
Merci beaucoup de ton code, simple et efficace.
J'ai encore un probleme, est ce qu'un carambar on peut le zipper et le passer par FTP

Bonne journée à tous
0
Rejoignez-nous