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

merlin1977 13 Messages postés mardi 25 septembre 2007Date d'inscription 26 novembre 2012 Dernière intervention - 5 nov. 2012 à 21:25 - Dernière réponse : merlin1977 13 Messages postés mardi 25 septembre 2007Date d'inscription 26 novembre 2012 Dernière intervention
- 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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 5 nov. 2012 à 23:20
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

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 5 nov. 2012 à 23:14
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
merlin1977 13 Messages postés mardi 25 septembre 2007Date d'inscription 26 novembre 2012 Dernière intervention - 6 nov. 2012 à 11:01
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.