DataGridView第一列,第一行,在Load上选中,我不想这样

Spo*_*oks 22 c# datagridview winforms

所以基本上第一行中的第一列总是被选中,我无法找到一种方法来获得它,因此gridview没有选定的单元格.有帮助吗?

Dav*_*ley 29

我自己也遇到了很多麻烦.我有一个用户控件,其中包含一个DataGridView,它在应用程序/表单加载时填充.第一行的选择似乎数据绑定完成并且填充/渲染网格发生.用户控件加载事件(也可能是表单加载)在此之前触发 - 因此在这些加载事件中调用gridView.ClearSelection()或使gridView.CurrentCell无效没有净效果.

最终对我有用的是从DataGridView本身的DataBindingComplete事件中调用.ClearSelection().这就像一个魅力.

  • 这就是为什么我不应该只阅读最佳答案的原因。:/ (2认同)
  • @dave marley - 你不知道我花了多少时间来解决这个问题! (2认同)

小智 19

我有同样的问题,没有任何工作.对我有用的解决方案是将'Tabstop'属性设置为False,并在数据绑定后立即调用ClearSelection()方法.

  • 不错的提示.这仍然会触发SelectionChanged事件,这可能会导致一些问题. (5认同)

Jay*_*ggs 5

CurrentCell在数据绑定DGV之后,将DGV的属性设置为null:

dataGridView1.CurrentCell = null; 
Run Code Online (Sandbox Code Playgroud)

请注意,这样做不会阻止触发与行和单元格选择相关的DGV事件。您必须在RowEnter事件上添加选定的行或单元格计数检查,如下所示:

private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) {
    if (dataGridView1.SelectedRows.Count == 1) {
        // Do stuff since a row is actually selected ...
    }
}
Run Code Online (Sandbox Code Playgroud)