Ouverture automatique d'un combobox [Résolu]

Signaler
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013
-
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013
-
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

Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
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
Messages postés
13
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2009

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 !
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

Il me donne un bug :

Permission refusée.
Messages postés
13
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2009

C'est bien un programme en VB6 !?

M@tt

La prog c'est mon dada !
Messages postés
13
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2009

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 !
Messages postés
13
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2009

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 !
Messages postés
13
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2009

Petite erreur de me part : remplace vbF4 par vbKeyF4 ...

M@tt

La prog c'est mon dada !
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

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"
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

Merci beaucoup merci à vous tous. ça marche maintenant