C#DataGridView如何以编程方式触发所选事件

时间:2016-06-10 02:09:02

标签: c# datagridview

我在表单中有一个DataGridView,我有以下代码:

 //Scroll to the last row
            gridStore.FirstDisplayedScrollingRowIndex = gridStore.RowCount - 1;
            // select new row
            gridStore.Rows[gridStore.Rows.Count - 1].Selected = true;

我意识到。选择了doenst触发SelectionChange事件:

 private void gridStore_SelectionChanged(object sender, EventArgs e)
        {

        }

当我以编程方式选择行时,我需要触发该事件。

  

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

正如您所理解的那样,SelectMode设置为FullRowSelect SelectionChanged事件时不会触发。

您有两种解决方法可以解决此问题。

选项1

将您希望在gridStore_SelectionChanged之间共同执行的逻辑与明确更新选择并在两个事件中调用该方法分开。

private void DoSomething()
{

}

private void gridStore_SelectionChanged(object sender, EventArgs e)
{
     ...
     DoSomething();
}

gridStore.FirstDisplayedScrollingRowIndex = gridStore.RowCount - 1;
// select new row
gridStore.Rows[gridStore.Rows.Count - 1].Selected = true;

DoSomething();

选项2:

明确地在进行选择后触发事件(不是更好的方式,但有效)。

gridStore.FirstDisplayedScrollingRowIndex = gridStore.RowCount - 1;
// select new row
gridStore.Rows[gridStore.Rows.Count - 1].Selected = true;
gridStore_SelectionChanged(this, new EventArgs())