Ouverture automatique d'un combobox

Résolu
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 7 juil. 2009 à 16:30
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 7 juil. 2009 à 23:49
Bonjour,

J'aimerai savoir comment puis-je ouvrir un combobox automatiquement dès qu'il reçois le Focus.

Merci pour votre aide.

9 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
7 juil. 2009 à 23:17
Bonsoir,

J'espère que tu développes bien sous VB6 et non sous VBA (sans quoi la chose ne pourra pas marcher sans ajouter dfe quoi extraitre le hwnd de ta combo d'abord ...)

Regarde ceci :

Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" _
               (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, lParam As Any)

Private Sub Form_Load()
  For i = 1 To 100
    Combo1.AddItem i
  Next
  SendMessage Combo1.hwnd, &H14F, 1, 0
End Sub
3
matt_18 Messages postés 13 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 22:12
Salut spamito !

Essai d'écrire ça dans l'évènement GotFocus de ton combo :

SendKeys "{F4}"

J'espère avoir répondu à ta question ;-)

M@tt

La prog c'est mon dada !
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
7 juil. 2009 à 22:25
Il me donne un bug :

Permission refusée.
0
matt_18 Messages postés 13 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 22:32
C'est bien un programme en VB6 !?

M@tt

La prog c'est mon dada !
0

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

Posez votre question
matt_18 Messages postés 13 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 22:37
Je viens de refaire le test, ça fonctionne très bien lorsque j'écris ça :

Private Sub Combo1_GotFocus()
    SendKeys "{F4}"
End Sub

M@tt

La prog c'est mon dada !
0
matt_18 Messages postés 13 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 22:43
Bon apparamet tu dois utiliser Windows Vista puisque SendKeys ne fonctionne pas sous Vista .... Donc voici un code alternatif à SendKeys :

Public Declare Sub keybd Lib "user32" Alias "keybd_event" _
  (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
  ByVal dwExtraInfo As Long)

Private Sub Combo1_GotFocus()
keybd vbF4, 0, 0, 0     'Ici on simule l'appui sur F4

keybd vbF4, 0, 2, 0     'Ici on simule que l'on relache F4End Sub

En plus la fonction SendKeys est a éviter ... Voilà j'espere que cela va fonctionner ;-)
M@tt

La prog c'est mon dada !
0
matt_18 Messages postés 13 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 22:46
Petite erreur de me part : remplace vbF4 par vbKeyF4 ...

M@tt

La prog c'est mon dada !
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
7 juil. 2009 à 22:50
Oui c'est du Vista.
1 - Merci bcp pour ton aide.
2 - Au niveau du premier code, il me donne l'erreur suivante : "Des constantes, chaines de longueur fixe, tableaux, types définis par l'utilisateur et instructions Declare ne sont pas autorisé comme membres Public de modules d'objet"
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
7 juil. 2009 à 23:49
Merci beaucoup merci à vous tous. ça marche maintenant
0
Rejoignez-nous