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

时间:2014-06-02 17:27:44

标签: c# winforms datagridview

我在Window Form Application中有一个dataGridView控件。 dataGridView中添加了三列。我在dataGridView中添加了20个空行以显示一些空白单元格。(否则dataGridView只显示灰色区域)。

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

dataGridView1.Rows.Add(20);

表单初始化后,datagridview显示一些空白单元格,但第一行中的第一个单元格被选中(以蓝色突出显示)。 请注意,datagridview中没有数据。我无法弄清楚如何清除默认选择。

我做了一些研究。有一些讨论。我试过了,他们没有工作。我认为这是因为我没有控件中的数据。但是,以下链接中提到的方法是用于加载数据的datagridview。

Disable default cell selection in datagridView

disable window gridview get focus on first row

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

http://social.msdn.microsoft.com/Forums/windowsapps/en-US/1dc26694-1147-4d5b-8b7d-11c9c493e605/how-to-disable-default-selection-in-gridview-

how to prevent autoselection of first item in GridView on databind?

如果你能给我一些想法,请提前致谢。

5 个答案:

答案 0 :(得分:8)

我在项目的表单Shown - 事件:

中使用了此代码
dataGridView1.ClearSelection();

答案 1 :(得分:2)

DataGridView1.FirstDisplayedCell.Selected = False

答案 2 :(得分:1)

我无法在新的测试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;

我有时候不知道是什么原因引起的。 (..但是我会把它添加到答案中。)

答案 3 :(得分:0)

在我的情况下,我使用这段代码让它工作:

dataGridView1.EndEdit();

希望这有助于某人。

答案 4 :(得分:0)

如果有人仍然遇到这方面的麻烦,我发现当上述所有建议都失败时,这对我有用。

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