我想基於的價值選擇添加到我的第二combobox
我在第一combobox
我datagridview
(包含textbox
列以及)。DataGridView控件修改另一個
這裏是我的代碼:
Private Sub DataGridView1_EditingControlShowing(sender As Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
Try
'Sub Recurrence combobox is selected
If DataGridView1.CurrentCell.ColumnIndex = 4 Then
'Verify what is chosen in the Recurrence textbox
Dim rowIndex = DataGridView1.CurrentCell.RowIndex
Dim FirstComboboxValue = DataGridView1(3, rowIndex).Value
If Not IsNothing(FirstComboboxValue) Then
Dim cmb As ComboBox = TryCast(e.Control, ComboBox)
RemoveHandler cmb.SelectedIndexChanged, New EventHandler(AddressOf ComboBox_SelectedIndexChanged)
AddHandler cmb.SelectedIndexChanged, New EventHandler(AddressOf ComboBox_SelectedIndexChanged)
End If
End If
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Sub
我處理火朝ComboBox_SelectedIndexChanged事件觸發:
Private Sub ComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
If DataGridView1.CurrentCell.ColumnIndex = 4 Then
Dim comboBox As ComboBox = CType(sender, ComboBox)
Dim cbCell As DataGridViewComboBoxCell = DirectCast(DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(4), DataGridViewComboBoxCell)
Dim rowIndex = DataGridView1.CurrentCell.RowIndex
Dim FirstComboboxValue = DataGridView1(3, rowIndex).Value
'Clear items so they don't keep adding on each other
cbCell.Items.Clear()
Select Case FirstComboboxValue
Case "Choice1"
cbCell.Items.Add("Item1")
cbCell.Items.Add("Item2")
Case "Choice2"
cbCell.Items.Add("Item3")
cbCell.Items.Add("Item4")
Case "Choice3"
cbCell.Items.Add("Item5")
Case "Choice4"
cbCell.Items.Add("Item6")
cbCell.Items.Add("Item7")
End Select
'Remove event handler to prevent memory leak
RemoveHandler comboBox.SelectedIndexChanged, AddressOf ComboBox_SelectedIndexChanged
End If
End Sub
出於某種原因,當我用一個破發點,並通過程序步驟中,僅在第二次嘗試打開「項目」combobox
時第二次添加項目combobox
。
如果我嘗試在沒有調試的情況下運行程序,則不顯示任何內容。任何想法我做錯了什麼?
感謝您的回覆!不幸的是,由於該方法在我的EditingControlShowing事件之外被聲明,所以會出錯。它不知道該怎麼辦「cmb」 – Alex 2013-02-28 15:01:45
我知道這將適用於一個正常的組合框控件。問題是我們正在處理一個DataGridViewComboBoxColumn,他們需要處理程序才能工作 – Alex 2013-02-28 15:42:22
你試過了:SelectionChangeCommitted事件與addHandler和removeHandler? – 2013-02-28 15:58:51