我有一个datagridview
无论我点击什么单元格都会返回索引错误。
当我调试以下代码时,我得到-1
的{{1}}值。至于e.ColumnIndex
,我得到了我点击的正确行。
e.RowIndex
我试图用静态int替换 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
form2.value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
}
以查看它是否有效。当我添加int时,当我点击特定的行或列时,它不会做任何事情。
任何想法如何改变e.ColumnIndex
或如何解决此问题。
答案 0 :(得分:2)
e.ColumnIndex
的 -1表示正在选择RowHeader
。您确定没有绑定到此事件的RowSelected
事件吗?
在任何情况下,优良作法是在e.ColumnIndex
事件e.RowIndex
和{{CellClick
事件中检查RowHeader
和ColumnHeader
均为0或更高1}}单元格在点击时也会触发此事件,并且不会包含数据,这会让用户感到有些困惑。
答案 1 :(得分:0)
尝试这个
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1) return;
if (e.ColumnIndex == -1) return;
Console.WriteLine(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
}