将项添加到特定行的DataGridView中的Combobox

时间:2017-01-22 08:36:09

标签: c# datagridview combobox

我想知道你们其中一个人是否会碰巧知道如何实现我在标题中描述的内容!? 这是我到目前为止所尝试的:

192.168.2.10:8000

userTable是我的DataGridView,包含4列。使用Combobox的是第3个,所以它有索引2。 可悲的是,这不起作用,我不知道为什么,所以非常感谢任何帮助!

编辑1: 整个代码:

List<String> projects = new List<String>();
projects.Add("Hi");
DataGridViewComboBoxCell dropDown = (DataGridViewComboBoxCell)userTable.Rows[1].Cells[2];
//1st Row | 3rd Column
dropDown.DataSource = projects;
this.userTable.Rows.Add("", "", dropDown, "");

正如你所看到我正在从MySQL数据库中读取用户数据,然后我用这个数据创建一个新的行,在这一行中,应该有一个带有Combobox的cloumn,它包含用户的所有项目在“=&gt;”之后是Authed for和Status。 MySQL代码很好,只是在Combobox Part中的设置很难并且很遗憾长代码!

2 个答案:

答案 0 :(得分:0)

而不是:

DataGridViewComboBoxCell dropDown = (DataGridViewComboBoxCell)userTable.Rows[i].Cells[2];

你必须使用它:

DataGridViewComboBoxColumn dropDown = new DataGridViewComboBoxColumn();

您可以删除try块(暂时)以更好地调试代码。 还要检查this.userTable.Rows.Add(Username, CPU, dropDown, LastIP);是否也可以Controls添加值{。}}。

答案 1 :(得分:0)

首先,您的ArgumentException是因为您无法添加DataGridViewComboBoxColumnthis.userTable.Rows.Add(Username, CPU, dropDown, LastIP);
因为Add方法接收的值不是Cells而您的dropDownDataGridViewComboBoxColumn

其次,我不明白你为什么要尝试在网格中添加记录。 您已经更改了特定行中的ComboBox&#39; DataSource。没有理由再次添加它。

如果您,请尝试添加行,然后先添加行,然后更改它的组合框数据源。