我正在尝试填充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];
理论上,应选择右侧的第一个单元格,但选择第1列中的第3行。 这个问题会导致这个问题:
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
}
或者
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
}
答案 0 :(得分:1)
如果您想设置dataGridView1.CurrentCell
,请注意dataGridView1[0, 1]
第一个号码是columnIndex
,第二个号码是rowIndex
。因此,如果您想选择右侧的第一个单元格,您应该尝试这样做:
dataGridView1.CurrentCell = dataGridView1[1,0];//first row second column
答案 1 :(得分:1)
您使用以下
dataGridView1.CurrentCell = dataGridView1[0, 1];
并说
理论上,应选择右侧的第一个细胞
实际上,单元索引器的参数是columnIndex, rowIndex
,所以上面应该选择第二行的第一列,它确实是这样做的。如果您打算选择第一行的第二列,请使用dataGridView[1, 0]
。