我有一个datagridview,它是从数据集中填充的。
填充后,如果用户点击一行,则最后一列应从文本框更改为组合框。
我正在使用vb.net 2010.
在Datagridview1 CellClick事件:
With DataGridView1
If .Rows.Count = 0 Then Exit Sub
i = Datagridview1.currentrow.index
Dim gridComboBox As New DataGridViewComboBoxCell
gridComboBox.Items.Add("A") 'Populate the Combobox
gridComboBox.Items.Add("B") 'Populate the Combobox
gridComboBox.Items.Add("C") 'Populate the Combobox
.Item(8, i) = gridComboBox
End With
但这会导致错误:
The following exception occurred in DataGridView:
System.Argument.Exception: DataGridViewComboBoxCell value is not valid.
To replace this default dialog please handle the DataError event.
如果情况不可行,我希望在填充数据集中的数据时,最后一列的类型为组合框。
DataGridView1.DataSource = myDataSet
提前致谢。
答案 0 :(得分:2)
好的,这是我通过一些测试得出的结论。 只要单元格的值与其中一个下拉选项相同,您的代码就可以正常工作。但是如果组合框所在的单元格值为“D”(cmbbox只有“A”,“B”和“C”),您将收到此错误消息。
因此,要么将当前值作为选项放入组合框中,请确保单元格只能将A,B或C作为值,或者只是通过将其值设置为“”来清除单元格。然后这将工作。 :)