我已经检查了不同的代码,但我无法有效使用。我正在尝试检查第1列中的布尔值,如果选中该列,则我需要将第二列中的数据显示在文本/列表框中(如果选中了多个框)。
这就是它的外观
DataTable dt = new DataTable();
dt.Columns.Add("Methods",System.Type.GetType("System.String"));
dt.Columns.Add("Select", System.Type.GetType("System.Boolean"));
DataRow dr = null;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
//Get the appropriate cell using index, name or whatever and cast to DataGridViewCheckBoxCell
DataGridViewCheckBoxCell cell = row.Cells["Select"] as DataGridViewCheckBoxCell;
//Compare to the true value because Value isn't boolean
if (cell.Value == cell.TrueValue)
{
listBoxTemp.DataSource = cell.Value.ToString().ToList();
}
//The value is true
}
因此,对于每个选择,必须返回“方法”中的相应字符串
先谢谢
答案 0 :(得分:0)
使用row.Cells["Methods"]
获取该行中的其他相邻单元格。您可以将其插入新列表中,或者在foreach
循环中使用它执行其他操作。
即。通过修改现有代码......
ListBox listBoxTemp = new ListBox();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewCheckBoxCell cell = row.Cells["Select"] as DataGridViewCheckBoxCell;
if (cell.Value == cell.TrueValue)
{
listBoxTemp.Add(row.Cells["Methods"].Value.ToString());
}
}
如果您要遍历大量行,也可以停止并稍后恢复ListBox
的绘制。 Refer to MSDN for an example of this.