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)
{
}
?
使用以下
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