我有一个DataGridView
控件,我正在检查我是否得到column 0
的正确值
但是当我点击我的按钮来回显该值时,我总是会收到此错误...
我的代码中是否有错误?或者是什么?
答案 0 :(得分:1)
将你的long /复合语句分成几行/语句:
答案 1 :(得分:1)
当datagridview最初与数据绑定,并且您没有单击任何行或任何单元格或datagridview时,CurrentRow.Index属性将不会设置为“可见”选定的行。 但是当你遍历每一行时,你会发现dgView.Rows [?]。Selected已设置为true或false。您可以使用try catch创建一个方法,以便在获取CurrentRow.Index的属性时捕获异常。请尝试以下代码。
try
{
MessageBox.Show(dgView1[0,dgView1.CurrentRow.Index].Value.ToString());
}
catch
{
for (int i = 0; i < dgView1.Rows.Count; i++)
{
if (dgView1.Rows[i].Selected)
{
MessageBox.Show(dgView1[0,dgView1.Rows[i].Index].Value.ToString());
return;
}
}
}
答案 2 :(得分:0)
我认为最可能的原因是,当您单击按钮时,表单将集中在第2行(带*的行),此行在您单击&amp;之前没有对它的引用。在行的单元格中输入内容(如果是这样,将自动生成另一行*)。如果您不希望自动生成行,只需将dataGridView1.AllowUserToAddRows
设置为false。
答案 3 :(得分:0)
我刚创建了一个新项目,我工作了......很奇怪。
答案 4 :(得分:-1)
尝试替换
带有dgView.CurrentRow.Index
的 dgView.SelectedRows[0].Index
并将属性Multiselect
设置为False
,SelectionMode
= FullRowSelect
这有帮助吗? :)