Dérouler un ComBoBow vb2005

Résolu
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 - 13 oct. 2006 à 14:20
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 - 13 oct. 2006 à 22:07
Bonjour,

je suis neuneu ou quoi ?

je trouve pas la commande pour dérouler un combobox ou du moins le prédérouler ?

merci

7 réponses

DavidWhitewater Messages postés 81 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 1 janvier 2010
13 oct. 2006 à 21:11
Hum, un peu compliqué, non ?

En faisant un SendKeys c'est plus simple.

DataGridView1.Focus() ' Donne le focus au DataGridView
DataGridView1.CurrentCell = DataGridView1.Item(0, 0) ' Sélectionne la cellule contenant le ComboBox
SendKeys.Send("{F4}") ' Déroule la ComboBox

A plus.
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 oct. 2006 à 14:27
Salut,

Je ne connais pas .NET mais essaie de voir si l'objet ComboBox  ne possede pas une procédure .DropDown

@+,   Ju£i?n
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
13 oct. 2006 à 14:41
dur dur, car en plus il s'agit d'un combobox (DataGridViewComboBoxColumn) d'une colonne d'un DataGridView

çà coince là

me fo les conseils des pro ! ils sont là ?
merci
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
13 oct. 2006 à 16:31
Salut

Bon je vasi essayé de dépanner. Mais ce code n'est pas correct, car j'ai mis des constantes pour déplacer la souris, ne comprends pas pourquoi, surtout pourquoi le Y n'est pas correct. Normalement à 0 il devrait être quasi correct si quelqu'un connait pour je suis preneur.

1--> Un module de classe ou une classe
Dont le contenu resemble à cela.

Option Strict On
Option Explicit On
Module SourisEvents
' Capture les coordonnées de la souris
' Déplace la souris à un coordonnées donné

'on déclare les constantes
Public Const MOUSEEVENTF_ABSOLUTE As Long = &H8000
Public Const MOUSEEVENTF_LEFTDOWN As Long = &H2
Public Const MOUSEEVENTF_LEFTUP As Long = &H4
Public Const MOUSEEVENTF_MIDDLEDOWN As Long = &H20
Public Const MOUSEEVENTF_MIDDLEUP As Long = &H40
Public Const MOUSEEVENTF_MOVE As Long = &H1
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10
Public Const MOUSEEVENTF_WHEEL As Long = &H80
Public Const MOUSEEVENTF_XDOWN As Long = &H100
Public Const MOUSEEVENTF_XUP As Long = &H200
Public Const WHEEL_DELTA As Long = 120
Public Const XBUTTON1 As Long = &H1
Public Const XBUTTON2 As Long = &H2
Public Structure PointAPI
Dim X As Integer
Dim Y As Integer
End Structure


Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, ByVal lpPoint As PointAPI) As Long
Public Declare Function GetCursorPos Lib "user32" (ByVal lpPoint As PointAPI) As Long
Public Declare Function SetCursorPos Lib "user32.dll" (ByVal X As Int32, ByVal Y As Int32) As Boolean

Public Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Int32, ByVal dx As Int32, ByVal dy As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As Int32)
' Capture des touches
Public Declare Function GetKeyState Lib "User32" (ByVal nVirtKey As Integer) As Short


End Module

et sur ta form un button et un combobox

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

SetCursorPos(Me.Left + ComboBox1.Left + ComboBox1.Width - 10, Me.Top + ComboBox1.Top + 40)
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Cursor.Position.X, Cursor.Position.Y, 0, 0)
'ComboBox1.Handle()
End Sub

Apres à toi de sauvegarder la position de la souris pour la restaurer apres
avec Cursor.Position.Y

Pour eviter les api
tu peux utiliser aussi
Cursor.Position = New Point(Me.Left + ComboBox1.Left + ComboBox1.Width - 10, Me.Top + ComboBox1.Top + 40) a la place de SetCursorPos


--> -10 pour ce positionnner sur la cache pour dérouler
--> +40 la je ne vois pas (d'ou la question si un pro api windows se promene)

Attention
il faut des int32 dans les declaration avec des long, ca ne fonctionne pas correctement pour le setposition il est à 0 pour le Y (avis au pro des API)

Voila
0

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

Posez votre question
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
13 oct. 2006 à 17:16
bon, ok
je croyais qu'il existait un truc plus simple, je vais essayer çà suand même

merci beaucoup de ton aide
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
13 oct. 2006 à 17:21
J'ai oublié la gestion de la DataGridViewComboBoxColumn
Mais la pour l'instant, j'ai pas regardé, si il est possible de recupérer son emplacement.
0
vercomax Messages postés 547 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 septembre 2013 2
13 oct. 2006 à 22:07
je n'ai qu'un mot à dire DavidWhitewater :


NIKEL !


et merci beaucoup pour cette astuce, à si vous étiez pas là ...
0
Rejoignez-nous