我有一个 WinForm DataGridView,当我用数据填充它时,默认选择第一项。我不希望在选择项目时触发事件并执行某些代码时发生这种情况。我的解决方案是取消 Hook -绑定(bind)-重新 Hook 事件,或者在新数据绑定(bind)后第一次触发事件时更改标志。但是我想知道是否有更优雅的东西。
最佳答案
我遇到了类似的问题(但我没有使用 SelectionChanged 事件),这对我有用:
在构造函数中,设置绑定(bind)后,向DataBindingComplete 事件添加一个处理程序:
dgvCommandos.DataSource = systeemCommandos; // = my List<> of objects
dgvCommandos.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(dgvCommandos_DataBindingComplete);
处理程序:
void dgvCommandos_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dgvCommandos.ClearSelection();
}
如果您打算选择一行(例如,在添加/插入一个新对象之后),只需设置:
dgvCommandos.Rows[insertPos].Selected = true;
以此为基础,我认为可以处理其他事件以对用户选择使用react。希望这会有所帮助。
关于.net - 防止 DataGridView 选择第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1104792/