繁体   English   中英

为什么不触发DataGridView SelectionChanged事件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM