所以,我有一个有几列的DataGridView
。第一个 (index=0) 每行包含一个复选框。
当应用程序运行时:我为某些行设置了复选框 true,当我触发事件应用程序时,忽略我上次单击的复选框。但是当我单击CheckAll按钮时,我使该操作适用于每个项目。
private void nameToolStripMenuItem_Click(object sender, EventArgs e)
{
for (int i = 0; i < datagridview1.RowCount; i++)
{
try
{
if ((bool)datagridview1[0, i].Value){
// do something with row values
}
}
catch (Exception ex) {
// this is because if checkbox is not checked
// the compiler throws NullReferenceException
}
}
}
更奇怪的是,我在项目的其他地方编写了与相同for(){}
的代码,并且代码没有像那样的异常。我做错了什么?
感谢您阅读本文。
我可能会用foreach创建循环,这将确保每一行都被选中。 可能,您可以使用 i
最后。Visual Studio 没有计算检查的最后一行,因为该单元格的编辑未完成。我用这行代码解决了问题。
数据网格视图1.结束编辑();