DataGridViewComboBoxColumn dans un datagrid capturer l'evenement + problème néce [Résolu]

Messages postés
13
Date d'inscription
mardi 25 septembre 2007
Dernière intervention
26 novembre 2012
- - Dernière réponse : merlin1977
Messages postés
13
Date d'inscription
mardi 25 septembre 2007
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 :)
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 95 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Charles Racaud
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
0
Merci
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
Commenter la réponse de Charles Racaud
Messages postés
13
Date d'inscription
mardi 25 septembre 2007
Dernière intervention
26 novembre 2012
0
Merci
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 :)
Commenter la réponse de merlin1977

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.