禁用DataGridView中默认的单元格选择

8

我有一个DataGridView用于程序加载某些数据。在插入数据后,我会显示DataGridView。默认情况下,选择第1行0列的单元格。但我不需要它。我尝试禁用该选项。

datagridviewname.currentcell=null   

但是它不会起作用。有人可以帮助我解决问题吗?

期望的行为是什么? - syclee
6个回答

16

CurrentCellSelected属性设置为False,如下:

   dataGridViewName.CurrentCell.Selected = false;

1
提问者并没有要求 CurrentCell。他要求的是第一行第零列。 - Atish Kumar Dipongkor
1
当 DataGridView 加载时,它指向第 1 行和第 0(或 1)列,因此当前单元格就是 OP 要指出的基本内容。 - Edper
这将适用于任何默认单元格选择,除非您有选择第1行而不是第0行的代码。 - iDillon
我认为当这行代码放在“Form Load”或类似位置时,答案会更有意义。 - Hari

15

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

private void datagridview1_DataBindingComplete(object sender, EventArgs e)
{
    datagridview1.ClearSelection();
}

1
完美的解决方案。 - M. Fawad Surosh
((DataGridView)sender).ClearSelection(); - blaze_125

10

你为什么将其设为空?应该像下面这样。我认为它会起作用。

dataGridViewName.Rows[0].Cells[0].Selected = false;

如果它是第一行第零个,那么

dataGridViewName.Rows[1].Cells[0].Selected = false;

4
唯一的方法是这样的:
private void dataGridView_SelectionChanged(object sender, EventArgs e)
{
     dataGridView.ClearSelection();
}

2
你应该在表单加载事件中执行清除选择,而不是构造函数。
private void Form1_Load(object sender, EventArgs e)
{
 // You will get selectedCells count 1 here
 DataGridViewSelectedCellCollection selectedCells = dataGridView.SelectedCells;
 // Call clearSelection 
 dataGridView.ClearSelection();
 // Now You will get selectedCells count 0 here
 selectedCells = dataGridViewSchedule.SelectedCells;
}

0

MSDN

您可以将此属性设置为 null 以暂时移除焦点矩形,但当控件接收到焦点并且此属性的值为 null 时,它会自动设置为 FirstDisplayedCell 属性的值。

因此,如果它不是第一行第一列的单元格,则将其设置为 null 才有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接