Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing cb = TryCast(e.Control, ComboBox) If cb IsNot Nothing Then or one handler twice RemoveHandler cb.SelectedIndexChanged, AddressOf DGVComboIndexChanged AddHandler cb.SelectedIndexChanged, AddressOf DGVComboIndexChanged End If End Sub
dim cb as combobox
dim cb as combobox Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing cb = TryCast(e.Control, ComboBox) If cb IsNot Nothing Then RemoveHandler cb.SelectedIndexChanged, AddressOf DGVComboIndexChanged AddHandler cb.SelectedIndexChanged, AddressOf DGVComboIndexChanged End If End Sub
Private Sub DGVComboIndexChanged() ComboBox1.SelectedIndex = cb.SelectedIndex Dim relation As DataRelation relation = New DataRelation("relation", _ DataSet1.Tables(System.IO.Path.GetFileName(ListBox1.SelectedItem)).Columns("Reference"), _ DataSet1.Tables(ComboBox1.SelectedItem).Columns("Reference")) Me.DataSet1.Relations.Add(relation) search_child(cb.SelectedItem, ComboBox1.SelectedItem, System.IO.Path.GetFileName(ListBox1.SelectedItem)) End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Pour le test j'affiche le nombre de fois que l'index change dans la form 'on commence donc à zéro: Me.Text = "0" 'Je crée dynamiquement un combobox: Dim Combo As ComboBox = New ComboBox 'Je l'ajoute aux contrôles de la form: Me.Controls.Add(Combo) 'Je le remplis avec des données: Combo.Items.Add("AAA") Combo.Items.Add("BBB") Combo.Items.Add("CCC") Combo.Items.Add("DDD") 'J'affiche l'index 0 => "AAA" donc Combo.SelectedIndex = 0 'Je lui ajoute le handler Combo_SelectedIndexChanged AddHandler Combo.SelectedIndexChanged, AddressOf Combo_SelectedIndexChanged End Sub Private Sub Combo_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Je fais un "plus un" à chaque fois que je change d'index sur le combo Me.Text = Val(Me.Text) + 1 End Sub