【发布时间】:2014-12-17 14:16:21
【问题描述】:
我有这个从对象获取数据的 datagridView。 我添加这样的列:
dataGridView1.CellClick += dataGridView1_CellClick;
DataGridViewButtonColumn colUsers = new DataGridViewButtonColumn();
colUsers.UseColumnTextForButtonValue = true;
colUsers.Text = "Users";
colUsers.Name = "";
dataGridView1.Columns.Add(colUsers);
我添加了一个 onclick 事件,但它不起作用,我错过了什么吗?
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex > -1 && dataGridView1.Columns[e.ColumnIndex].Name == "Users")
{
name = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
gtUserDetails.ShowDialog();
}
}
我收到一个错误:索引超出范围。必须为非负数且小于集合的大小。
【问题讨论】:
-
在
CellClick活动中检查您的ColumnIndex和RowIndex -
我应该检查什么?如果我不添加新列,则单击事件有效,但不适用于新列@vallabha
-
当您单击已添加的按钮时,会引发异常或事件本身未触发。
-
@vallabha,是的,我明白了:索引超出范围。必须为非负数且小于集合的大小。
-
然后在您的
if条件处设置一个断点并检查CellClick事件中的ColumnIndex和RowIndex
标签: c# datagridview