DataGridView设置CurrentCell不工作

本文关键字:工作 CurrentCell 设置 DataGridView | 更新日期: 2023-09-27 18:18:15

我试图填充DataGridView并预选一个单元格。但它的效果并不好。我用下面的代码创建DataGridView:

DataTable table = new DataTable();
table.Columns.Add("Column1");
table.Columns.Add("Column2");
table.Rows.Add("Row1");
table.Rows.Add("Row2");
table.Rows.Add("Row3");
table.Rows.Add("Row3");
table.Rows.Add("Row4");
table.Rows.Add("");
dataGridView1.DataSource = table;
dataGridView1.ReadOnly = false;
dataGridView1.Columns["Column1"].ReadOnly = true;
dataGridView1[1, 2].ReadOnly = true;
dataGridView1[1, 3].ReadOnly = true;
DataGridViewButtonCell button = new DataGridViewButtonCell();
dataGridView1[1, table.Rows.Count - 1] = button;
button.Value = "Go";
button.FlatStyle = FlatStyle.Flat;
dataGridView1.CurrentCell = dataGridView1[0, 1];

理论上应该选择右边的第一个单元格,但选择的是第一列的第三行。

是否会导致这个问题?
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
}

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
}

?

DataGridView设置CurrentCell不工作

使用以下

dataGridView1.CurrentCell = dataGridView1[0, 1];

理论上右边的第一个单元格应该被选中

实际上,单元格索引器的参数是columnIndex, rowIndex,所以上面应该选择第二行的第一列,它确实是这样做的。如果您打算选择第一行的第二列,请使用dataGridView[1, 0]

当您要设置dataGridView1.CurrentCell时,您应该注意,在dataGridView1[0, 1]中,第一个数字是columnIndex,第二个数字是rowIndex。所以如果你想选择右边的第一个单元格你可以试试这个:

dataGridView1.CurrentCell = dataGridView1[1,0];//first row second column