1

我有一个从数据集中填充的 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

提前致谢。

4

1 回答 1

2

好吧,这是我通过一些测试得出的结论。只要单元格的值与下拉选项之一相同,您的代码就可以工作。但是,如果您放置组合框的单元格值为“D”(cmbbox 只有“A”、“B”和“C”),您将收到此错误消息。

因此,要么将当前值作为选项放入组合框中,要么确保单元格只能有 A、B 或 C 作为值,或者只是通过将其值设置为“”来清除单元格。然后这将起作用。:)

于 2012-10-17T07:21:30.397 回答