我在表单中有一个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)
{
}
当我以编程方式选择行时,我需要触发该事件。
有任何线索吗?
答案 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())