C# 禁用datagridView中的默认单元格选择

C# 禁用datagridView中的默认单元格选择,c#,winforms,C#,Winforms,我使用DataGridView以编程方式加载一些数据。插入数据后,我将显示DataGridView。此处默认选择第一行第0列单元格。但我不需要那个。我已尝试禁用该选项 datagridviewname.currentcell=null 但这是行不通的。任何人都能帮我解决问题 您可以将此属性设置为null以临时删除焦点矩形,但当控件接收到焦点且此属性的值为null时,它将自动设置为FirstDisplayedCell属性的值 因此,看起来只有当它不是第一行第一列单元格时,将其设置为nul

我使用DataGridView以编程方式加载一些数据。插入数据后,我将显示DataGridView。此处默认选择第一行第0列单元格。但我不需要那个。我已尝试禁用该选项

datagridviewname.currentcell=null   
但这是行不通的。任何人都能帮我解决问题

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


因此,看起来只有当它不是第一行第一列单元格时,将其设置为null才有效。

CurrentCell
Selected
属性设置为
False
类似:

   dataGridViewName.CurrentCell.Selected = false;

你为什么把它设为空?它应该像下面这样。我想它会起作用的

dataGridViewName.Rows[0].Cells[0].Selected = false;
如果它是第0行第1行,则

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

您应该在窗体的窗体加载事件中执行清除选择,而不是在构造函数中执行

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;
}

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

唯一的办法是:

private void dataGridView_SelectionChanged(object sender, EventArgs e)
{
     dataGridView.ClearSelection();
}

想要的行为是什么?Asker没有要求CurrentCell。当DataGridView加载到第1行和第0行(或第1行)时,他要求输入第1行0thw列因此是当前单元格,我猜这基本上就是OP试图指出的。这将适用于所选的任何默认单元格,除非您有选择第1行而不是第0行的代码。我认为当该行被放入form load或类似内容时,答案更有意义?完美的解决方案。
private void dataGridView_SelectionChanged(object sender, EventArgs e)
{
     dataGridView.ClearSelection();
}