我正在使用一个DataGridView
,其中一列由DataGridViewComboBoxCell
组成。 我的程序填充这些ComboBoxCells
的方式是,它轮询本地数据库中的特定值并以这种方式设置它们。
这个我没有问题。
我遇到的问题是,当我尝试以编程方式更改组合框单元格中的哪个值"默认"显示时。 我在引号中有"默认情况下",因为我并没有真正尝试更改单元格的默认值,只需更改用户看到添加到DataGridView
的列时显示的值。
目前,我的程序中出现以下错误:
System.ArgumentException: DataGridViewComboBoxCell 值无效。
现在这是我试图用来让它工作的代码:
Dim dgvcc As New DataGridViewComboBoxCell
For Each row As DataRow In suppliers.Rows
dgvcc.Items.Add(row.Item("Supplier").ToString())
Next
dg.Item("Supplier", rowNum) = dgvcc
dg.Item("Supplier", rowNum).Value = dgvcc.Items.IndexOf(supplier)
关于上述代码的一些说明:
suppliers
是一个数据表的对象,它保存从数据库中检索的数据rowNum
只是一个整数变量,设置为要添加数据的行dg
是我DataGridView
对象
现在,我已经使用调试器运行此代码,以确认是的,我尝试在最后一行代码中获取索引的值确实存在于组合框列表中。
如果我将最后一行更改为:
dg.Item("Supplier", rowNum).Value = dgvcc.Items(0)
然后我没有得到错误。 所以我的问题似乎是尝试将值设置为特定索引,但我不确定我的代码是错误的。 除了我尝试执行的操作之外,还有其他方法可以设置DataGridViewComboBoxCell
的当前值吗?
注意:当我用 VB.Net 编程时,我也会接受 C# 答案:)
所以我发现了我的问题。 我需要更改:
dg.Item("Supplier", rowNum).Value = dgvcc.Items.IndexOf(supplier)
自
dg.Item("Supplier", rowNum).Value = dgvcc.Items().Item(dgvcc.Items.IndexOf(supplier))