我对DataGridView没有什么问题。
1.形式删除DataGridView控件和设置属性可见的假
2.添加几行并更改可见真像上面的代码。防止在DataGridView中选择单元格
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.Rows.Add(new object[] { "1", "a" });
dataGridView1.Rows.Add(new object[] { "2", "b" });
dataGridView1.Rows.Add(new object[] { "3", "c" });
dataGridView1.Rows.Add(new object[] { "4", "d" });
dataGridView1.Visible = true;
//^ this trigger selection
}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
Console.WriteLine("selected");
}
设置后可见为True,第一个单元格被自动选中并触发SelectionChanged事件。
如何防止?
编辑。解决方案:
- 分离事件处理程序:
- 设置可见
- 清除选择
- 添加处理器
dataGridView1.SelectionChanged -= dataGridView1_SelectionChanged;
dataGridView1.Visible = true;
dataGridView1.ClearSelection();
dataGridView1.SelectionChanged += dataGridView1_SelectionChanged;
我认为你的问题是,'dataGridView1_SelectionChanged'被解雇,因为这行代码:'dataGridView1.Visible = TRUE;'。设置网格的可见性将触发事件。为什么你想在开始时将网格设置为false? – KaeL
我想在特定情况下显示网格。在开始时,网格必须隐藏。 – revelvice
我的帖子中的解决方案。 – revelvice