cs_serge99
Messages postés78Date d'inscriptionlundi 29 août 2005StatutMembreDernière intervention14 octobre 2006
-
8 oct. 2006 à 16:39
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
8 oct. 2006 à 18:17
Je cherche à savoir comment forcé un combobox à s'afficher dans la colonne X d'un flexgrid. Comment faire?
Voici mon code:
'******************************************************************************
SQLstmt = "SELECT * FROM CableList"
'******************************************************************************
' Get the Records
Set rsCableList = New ADODB.Recordset
rsCableList.Open SQLstmt, connbd1, adOpenStatic, adLockOptimistic, _
adCmdText
With rsCableList
Do While Not rsCableList.EOF
Combo1.AddItem rsCableList.Fields("cableNo")
rsCableList.MoveNext
Loop
End With
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 8 oct. 2006 à 18:17
Une fois ton combobox (invisible) rempli avec ta requête, pour
l'afficher dans la grille sur un click de souris, tu peux utiliser
cette méthode
Private Sub Grid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
'Si la colonne est la 2eme (index 1) et que la ligne n'est pas la 1ère
If Grid1.Col = 1 And y > Grid1.RowHeightMin Then
'on déplace le combobox invisible sur cette cellule
Combo1.Move Grid1.Left + Grid1.CellLeft, _
Grid1.Top + Grid1.CellTop, _
Grid1.CellWidth
Combo1.Visible = True
Combo1.SetFocus
Else
Combo1.Visible = False
End If
End Sub
Private Sub Grid1_Scroll()
'si on scolle la grille, on met le combobox invisible sinon il sera sur la mauvaise cellule
Combo1.Visible = False
End Sub
Et tu n'as pas besoin de poser 3 fois la même question...
Dans ton code, mets le ZOrder du Combo à 0 pour qu'il soit en avant-plan
Combo1.ZOrder 0
Et je ne sais pas à quoi servent le HWnd et le Hook, mais tu pourrais laisser tomber si ce n'est pas nécessaire.