DataGridViewComboBoxColumn dans un datagrid capturer l'evenement + problème néce

Résolu
merlin1977 Messages postés 13 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 26 novembre 2012 - 5 nov. 2012 à 21:25
merlin1977 Messages postés 13 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 26 novembre 2012 - 6 nov. 2012 à 11:01
Bonjour,
j'ai un problème dont je n'arrive pas à me dépatouiller:
je rajoute dans un datagridview un colone avec un combobox.


Dim cmb As New DataGridViewComboBoxColumn()
        cmb.HeaderText = "LISTE"
        cmb.Name = "cmb"
        remplirlist("select * from list ", "LISTE", cmb)
        DtgSemaine1.Columns.Add(cmb)


DtgSemaine1 étant le nom du datagridview.

J'ai deux gros problèmes :
1-Pour sélectionner un item de la liste je dois cliquer deux fois au lieu d'une sur la zone de la combobox.
2-Pour capturer l’événement lorsque je choisis un item de la combobox afin de déclencher une suite d'action.
Je n’arrive pas à trouver la marche à suivre.

Je suis en vb.net 2010

Merci pour votre aide

Gros débutant cherche à progresser :)

3 réponses

Utilisateur anonyme
5 nov. 2012 à 23:20
Pour le second (un peu plus complexe à mettre en place)

Private Sub DtgSemaine1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DtgSemaine1.EditingControlShowing
  Static dgvwEditCombo As DataGridViewComboBoxEditingControl = Nothing
  Dim combo As DataGridViewComboBoxEditingControl = TryCast(e.Control, DataGridViewComboBoxEditingControl)
  If combo IsNot Nothing Then
    If dgvwEditCombo IsNot Nothing Then
      RemoveHandler dgvwEditCombo.SelectedValueChanged, AddressOf DgvwEditCombo_SelectedValueChanged
    End If
    dgvwEditCombo = combo
    AddHandler dgvwEditCombo.SelectedValueChanged, AddressOf DgvwEditCombo_SelectedValueChanged
  End If
End Sub

Private Sub DgvwEditCombo_SelectedValueChanged(sender As Object, e As EventArgs)
  Dim combo = TryCast(sender, DataGridViewComboBoxEditingControl)
  Dim cell = combo.EditingControlDataGridView.CurrentCell
  ' ... Ton traitement ici ...
End Sub



_____________
Kenji
3
Utilisateur anonyme
5 nov. 2012 à 23:14
Bonsoir,

Voici déjà pour ton premier problème :

Private Sub DtgSemaine1_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles DtgSemaine1.CellEnter
  Dim dgvw = TryCast(sender, DataGridView)
  Dim cell = dgvw.Rows(e.RowIndex).Cells(e.ColumnIndex)
  If TypeOf cell Is DataGridViewComboBoxCell Then
    Dim combo As DataGridViewComboBoxEditingControl
    DtgSemaine1.BeginEdit(True)
    combo = CType(dgvw.EditingControl, DataGridViewComboBoxEditingControl)
    combo.DroppedDown = True
  End If
End Sub


Je penche sur le second.

_____________
Kenji
0
merlin1977 Messages postés 13 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 26 novembre 2012
6 nov. 2012 à 11:01
Super!
Merci beaucoup ça marche parfaitement.
par contre j'avoue que le fonctionnement de la chose reste obscure pour moi.
Je vais creuser pour essayer de comprendre tout ça.
En tout cas merci encore ça solutionne un problème sur lequel je finissais par m'arracher les cheveux. :)




Gros débutant cherche à progresser :)
0
Rejoignez-nous