2011-03-29 187 views
1

我有datagridview包含4列2 combobox。在datagridview的初始加载中,我可以用组合框选择一个项目,但是当我试图用其他组合框选择一个项目时,我得到一个错误,显示“System.ArgumentException:DataGridViewComboBoxCell Value无效。处理数据错误事件“。当我点击它总是显示此消息。DataGridViewComboBoxColumn自动完成

任何建议将不胜感激

预先感谢

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 

回答

1

DGV仅使用一个对于所有小区和列的组合框。

在将其显示在其他单元格上之前,需要将所有已签名的属性/事件移除到组合框。

EditingControlShowing使用,重置性的判定时控制是一个组合框,然后将其指定为列= 0

可以使用自定义DataGridviewComboBoxCell(继承)做相同的行为。

然后您可以覆盖InitializeEditingControlDetachEditingControl