再次求助:DataGridViewComboBoxCell 值无效。

leon51 2019-10-25 10:16:59
重新发个贴,问题找到了,但不知道如何解决,请帮帮忙,谢谢

在下面的AddColumn方法中,通过Array类型的变量给DataGridViewComboBoxColumn添加Items;
ComboBoxColumn列的实际取值为“A”,“B”,“C”.

private void AddColumn(DataGridView dgv, DataGridViewComboBoxColumn comboBoxColumn, 
string columnName, Array items, string dataPropertyName)
{
comboBoxColumn = new DataGridViewComboBoxColumn();
comboBoxColumn.Name = columnName;
comboBoxColumn.DataPropertyName = dataPropertyName;
//...
foreach (string itm in items)
{
comboBoxColumn.Items.Add(itm);
}
dgv.Columns.Add(comboBoxColumn);
}


用下面的代码调用后会出现这样的错误提示:System.ArgumentException: DataGridViewComboBoxCell 值无效。
Array items = new string[] { "A", "B","C" };
dgv.AddColumn(dgv, comboBoxColumn, "类别", items, "Category");


当用以下代码时则一切正常。GetEnum是别人的提供的一个方法,返回的是Array类型。
Array items = GetEnum("Category");
dgv.AddColumn(dgv, comboBoxColumn, "类别", items, "Category");


因此可以确定是
Array items = new string[] { "A", "B","C" };

出了问题。但是应该如何修改呢?
我按下面这样写也不对。
Array items = Array.CreateInstance(typeof(string),3);
items.SetValue("A", 0);
items.SetValue("B", 1);
items.SetValue("C", 2);
...全文
325 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Array 是抽象类,不能使用 new 创建。
Array items = new string[] { "A", "B","C" };
-->
string[] myList= new string[] { "A", "B","C"};
Array items = Array.CreateInstance(typeof(string), myList);

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧