C# 在WinForm应用程序中加载表单后,禁用datagridview中的默认单元格选择

C# 在WinForm应用程序中加载表单后,禁用datagridview中的默认单元格选择,c#,winforms,datagridview,C#,Winforms,Datagridview,我在窗口窗体应用程序中有一个dataGridView控件。将向dataGridView添加三列。为了显示一些空白单元格,我在dataGridView中添加了20个空行(否则dataGridView只显示灰色区域) 在dataGridView控件上,我添加了三列“a”、“b”、“c”。在表单加载中,我添加了这个 dataGridView1.Rows.Add(20); 表单初始化后,datagridview显示一些空白单元格,但选中了第一行中的第一个单元格(以蓝色突出显示)请注意,datagrid

我在窗口窗体应用程序中有一个dataGridView控件。将向dataGridView添加三列。为了显示一些空白单元格,我在dataGridView中添加了20个空行(否则dataGridView只显示灰色区域)

在dataGridView控件上,我添加了三列“a”、“b”、“c”。在表单加载中,我添加了这个

dataGridView1.Rows.Add(20);
表单初始化后,datagridview显示一些空白单元格,但选中了第一行中的第一个单元格(以蓝色突出显示)请注意,datagridview中没有数据。我不知道如何清除默认选择

我做了一些调查。有一些讨论。我试过了,但都没用。我想这是因为我的控件中没有数据。但是下面链接中提到的方法是针对加载了数据的datagridview的

还有一些关于Windows应用商店应用程序的讨论。(我正在使用windows窗体应用程序)


如果您能给我一些想法,请提前感谢。

我无法在新的测试DGV中复制,但我以前见过它

以下是我发现的有效方法:

bool old = dataGridView1.MultiSelect;
dataGridView1.MultiSelect = false;
dataGridView1.Rows[1].Cells[0].Selected = true;
dataGridView1.Rows[1].Cells[0].Selected = false;
dataGridView1.MultiSelect = old;
有时我不知道是什么原因造成的。。
(…但一旦我这样做了,我会将其添加到答案中。)

我已经在我的项目表单的
中使用了此代码,如图所示
-事件:

dataGridView1.ClearSelection();

DataGridView1.FirstDisplayedCell.Selected=False

在我的例子中,我使用以下代码使其正常工作:

dataGridView1.EndEdit();

希望这对某人有所帮助。

如果有人对此仍有问题,我发现当所有上述建议都失败时,这对我来说很有效


在DataGridView上,为DataBindingComplete创建一个事件,然后添加此方法datagridview1.ClearSelection()

否。将所述单元格的选定属性设置为false可以正常工作,无需任何数据。如果你没有成功(我记得去年有过奇怪的问题),那么就这样做:对另一个细胞设置为true,然后再设置为false。我保证会成功的@Taw:在窗体load:dataGridView3中添加此。行[0]。单元格[0]。所选=false;不工作。然后尝试此操作,dataGridView3.Rows[0]。Cells[1]。Selected=true;dataGridView3.Rows[0]。单元格[1]。Selected=false;还是不行。我哪里做错了?嗯,我不知道。我想我之前将
MultiSelect
设置为false,之后将其重置。@Taw:BTW,甚至我尝试了dataGridView3。行[0]。单元格[0]。Selected=false;ataGridView3.Rows[0]。单元格[2]。Selected=true;仍然选择了第一行中的第一个单元格…@Taw:OK,在我将MultiSelect设置为false后,它正在工作。