如何将数据网格视图单元格样式从默认文本框更改为vb.net中的组合框?

时间:2012-10-17 04:26:01

标签: vb.net datagridview datagridviewcombobox

我有一个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

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

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