C# Can';t设置DataGridView的CurrentRow/CurrentCell

C# Can';t设置DataGridView的CurrentRow/CurrentCell,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,您能告诉我如何防止CurrentRow在执行以下代码后保持空值吗: private void Kartons_DataGrid_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { foreach (DataGridViewRow row in Kartons_DataGrid.Rows) { Kart

您能告诉我如何防止CurrentRow在执行以下代码后保持空值吗:

private void Kartons_DataGrid_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            foreach (DataGridViewRow row in Kartons_DataGrid.Rows)
            {
                Kartons_DataGrid.ClearSelection();
                var line = (TransportUnitHeader)row.DataBoundItem;
                if (line.NoTransportUnit == _selectTuNo)
                {
                    if (Kartons_DataGrid.CurrentRow != null) Kartons_DataGrid.CurrentRow.Selected = false;
                    Kartons_DataGrid.Rows[row.Index].Selected = true;
                    Kartons_DataGrid.CurrentCell = Kartons_DataGrid.Rows[row.Index].Cells[0];
                    _selectTuNo = string.Empty;
                    break;
                }
            }
        }
排队

Kartons_DataGrid.CurrentCell = Kartons_DataGrid.Rows[row.Index].Cells[0];
它总是抛出CurrentCell的NullReference,因此无法更改它


数据绑定完成后,我需要默认选择DataGridView的第一行。

我通过以下线程解决了这个问题:


简而言之,将List更改为BindingList作为数据源,就这样。

为什么要在循环中使用它??添加Kartons_DataGrid.CurrentCell=Kartons_DataGrid.Rows[0]。单元格[0];但是如果没有空值测试,就不能另外:您是否在调试器中检查了行中的空值???
Kartons\u DataGrid.CurrentCell=Kartons\u DataGrid.Rows[0]。Cells[0]
不可能,因为CurrentCell始终为空,这就是问题所在!这行设置它,只要有一行和一个单元格。好的,我明天看并写回。Thanks@TaW
Kartons\u DataGrid.Rows[0]。Cells[0]此调用导致nullreference异常,但我检查了索引0处的单元格,它有值。建议?错误是德语,但应该翻译成“Index-1没有值”或类似的东西。