[英]Why is DataGridView SelectionChanged event not firing?
在下面的代码中, datagridview1_SelectionChanged
事件在通过datagridview1_RowsAdded
事件处理程序中的代码更改了选择之后触发,该事件的CurrentRow
属性为null。 但是我只是在datagridview1_RowsAdded
处理程序中设置了它,并且在其中不为null。
但是,如果我在datagridview1_RowsAdded
处理程序中注释了两行,并通过鼠标单击任意行来选择该行,则该程序可以正常运行。 谁能告诉我为什么会这样吗?
这是我的代码:
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1];
dataGridView1.CurrentCell.Selected = true;
}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
if (dataGridView1.CurrentRow != null)
{
if (dataGridView1.CurrentRow.Index != -1)
{
dataGridView2.Enabled = true;
dataGridView3.Enabled = true;
dataGridView4.Enabled = true;
}
else
{
dataGridView2.Enabled = false;
dataGridView3.Enabled = false;
dataGridView4.Enabled = false;
}
}
else
{
dataGridView2.Enabled = false;
dataGridView3.Enabled = false;
dataGridView4.Enabled = false;
}
}
在你RowsAdded
方法,您已选择当前单元格,但不是当前行。 您可以使用以下命令选择当前行:
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Selected = true;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.