这个问题可能已经在这里提出过了,但是我找不到了,所以我自己就问了。
我有一个带DataGridView的应用程序。其中一列是Combobox类型。我想添加这个组合框的项目programaticaly。这是我用于此的代码:
this.dsStatussen = this.statussenMan.getAllStatussen();
DataGridViewComboBoxColumn cd = (DataGridViewComboBoxColumn)this.dgvEenheden.Columns[3];
cd.DataSource = dsStatussen;
cd.DisplayMember = "statussen";
cd.DataPropertyName = "sid";
cd.ValueMember = "status";
然后当我尝试添加一行时,我收到以下错误:“没有名称状态的字段”。我将错误转换为英语,因为我有一个荷兰语错误。 这是我用于添加行的代码:
Eenheden eenhedenMan = new Eenheden(objEvenement.eid);
DataSet EenhedenData = eenhedenMan.getAllEenheden();
foreach (DataRow dr in EenhedenData.Tables[0].Rows)
{
dgvEenheden.Rows.Add(
dr[0].ToString(),
dr[1].ToString(),
dr[2].ToString(),
Convert.ToInt32(dr[6]),
dr[3].ToString(),
dr[4].ToString(),
dr[5].ToString()
);
}
有人可以帮我弄清楚我做错了什么吗?我找不到它。这是我第一次使用带有组合框的DataGridView。
你的, 哈德
答案 0 :(得分:1)
根据我的经验,如果你通过绑定scource绑定它,然后设置
,我发现一切似乎都工作得更好bindingScource.dataScource.Rows.Add(
dr[0].ToString(),
dr[1].ToString(),
dr[2].ToString(),
Convert.ToInt32(dr[6]),
dr[3].ToString(),
dr[4].ToString(),
dr[5].ToString()
);
答案 1 :(得分:0)
选择正确的行?你的意思是从下拉列表中选择以查看datagrid中的行?
int index = dropdown.SelectedIndex();
for(int count = 0; count < dgvEenheden.Rows.Count; count ++)
{
if (dgvEenheden.Rows[count].Cells["<enter col name here>"].Value.ToString().equals(dropdown.Items[index].Text))
{
dgvEenheden.Rows[count].Selected = true; //to select the Row
dgvEenheden.Rows[count].Cells[<Cell Number>].Selected = true; //to select the specific Cell
}
}