我有一个不同名称的列字段。例如,我从ABC加载文件。并且名称列字段将是ABC。
我必须在选择ABC行对象时才显示按钮。
我在下面编写了一个代码,但它抛出异常。如果有人建议我这样做会很有帮助。
FormViewButton fvb = FormViewButton.getInstance();
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
row.DefaultCellStyle.SelectionBackColor = this.dataGridView1.DefaultCellStyle.SelectionBackColor;
bool selectedRow = row.Cells["Name"].Selected;
if (row.Cells["Name"].Value.ToString().Equals("ABC") && selectedRow == true) // A Nullreferenceexception was unhandled by user code is thrown here.
{
fmv.showButton.Visible = true;
}
else if (!row.Cells["Name"].Value.ToString().Equals("ABC") && selectedRow != true)
{
fmv.showButton.Visible = false;
}
}
答案 0 :(得分:1)
这是因为row.Cells["Name"]
或row.Cells["Name"].Value
不存在。
解决方案:当您遍历Rows
的{{1}}时,请检查索引:
DataGridView
则是标题行RowIndex == -1
== dataGridView1.NewRowIndex则为新行,而单元格RowIndex
将为Value
...并检查是否null
,以防万一
答案 1 :(得分:0)
如果单元格或字符串变量为null并且您尝试将一些字符串方法附加到它,例如something.ToString()或something.indexof等,则C#将始终抛出空异常错误。