我的winform中有一个DataGridView(DGV)控件。 DGV有4列。前2列是Combobox类型,其余2列是Textbox类型。当我在任何单元格中按Enter键时,它会移动到下一个单元格。如果按Enter键,则在最后一个单元格中创建一个新行,焦点移动到第二行的第一列。我希望它始终以这种方式表现。当我设置'启用编辑' = true时,我的问题就开始了。当我选择启用编辑=真时第一列中来自组合框的任何项目都会创建一个不必要的新行。我不想在此时创建一个新行。请告知如何避免这种情况。
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
int col = dataGridView1.CurrentCell.ColumnIndex;
int row = dataGridView1.CurrentCell.RowIndex;
if (col < dataGridView1.ColumnCount - 1)
{
col++;
}
else
{
col = 0;
row++;
}
if (row == dataGridView1.RowCount)
dataGridView1.Rows.Add();
dataGridView1.CurrentCell = dataGridView1[col, row];
e.Handled = true;
}
}
答案 0 :(得分:2)
在DataGridView控件中,将AllowUserToAddRows属性设置为False。这不会阻止您通过自己的自定义事件模型以编程方式添加行。它只会禁用那些您可能遇到问题的自动生成的行。