.net - 防止 DataGridView 选择第一项

标签 .net winforms datagridview

我有一个 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/

相关文章:

c# - List<>.IndexOf 是按引用还是按值进行比较?

c# - 如何自动聚焦在后台运行的 .Net winform 应用程序

c# - 如何以编程方式在 C# 中创建 Microsoft Access 数据库?

c# - 如果异常是从 Microsoft 的代码中抛出的,我如何找出最初导致异常的原因?

c# - 在 gridview 文本框中自动完成

c# - 我如何在这种情况下使用任务?

.net - 方法未找到 : 'System.Type.op_Equality'

c# - 从派生类设置只读对象

c# - 使用 MouseHover 使 PictureBox 可见/不可见

c# 调整 datagridview 列的大小以适应控件