我的datagridview包含4个包含2个组合框的列。随着datagridview的初始加载,我可以用组合框选择一个项目,但是当我尝试用其他组合框选择一个项目时,我得到一个错误,显示“System.ArgumentException:DataGridViewComboBoxCell Value无效。请更换此默认对话框请处理dataerror事件“。当我点击它时总是会显示此消息。
任何建议都会非常感谢
提前致谢
Tirso的
这是代码
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
If DataGridView1.CurrentCell.ColumnIndex = 0 Then
Dim sSQL As String = "SELECT * FROM pr_employees LEFT OUTER JOIN pr_employees_other_info ON pr_employees.employee_id = pr_employees_other_info.employee_id"
ReadSQL(sSQL)
Dim dtTable As New DataTable
dtTable.Load(reader)
Dim cbo As ComboBox = CType(e.Control, ComboBox)
cbo.DropDownStyle = ComboBoxStyle.DropDown
cbo.AutoCompleteMode = AutoCompleteMode.SuggestAppend
cbo.AutoCompleteSource = AutoCompleteSource.ListItems
cbo.DataSource = dtTable
cbo.DisplayMember = "first_name"
cbo.ValueMember = "employee_id"
End If
End Sub
答案 0 :(得分:1)
DGV仅对所有细胞和柱使用一个组合框。
在将其显示在其他单元格上之前,您需要将所有已签名的属性/事件移除到组合框。
使用EditingControlShowing
,当控件是组合框时重置属性,然后将其分配给column = 0。
您可以使用自定义DataGridviewComboBoxCell
(继承自)来执行相同的操作。
然后,您可以覆盖InitializeEditingControl
和DetachEditingControl
。