我在 windows 窗体中有一个 datagridview,编辑值时的默认行为是在编辑单元格后,当我按 enter 时,所选行更改为下一行。
我不希望这样,我想退出编辑模式但留在同一个单元格中。
可能吗?
我在 windows 窗体中有一个 datagridview,编辑值时的默认行为是在编辑单元格后,当我按 enter 时,所选行更改为下一行。
我不希望这样,我想退出编辑模式但留在同一个单元格中。
可能吗?
您可以自定义DataGridView
覆盖该ProcessDialogKey
方法:
public class CustomGrid : DataGridView {
protected override bool ProcessDialogKey(Keys keyData) {
if (keyData == Keys.Enter) {
EndEdit();
return true;
}
return base.ProcessDialogKey(keyData);
}
}
KeyDown 事件:
如果 e.KeyCode = Keys.Enter 则 e.SuppressKeyPress = True
它非常简单。编辑时将其保存cellindex
在变量中,然后重新选择它。
获取列和行索引:
e.ColumnIndex;
e.RowIndex;
并将它们保存到变量中。编辑单元格后,重新选择单元格:
dataGridView1.Rows[rindex].Cells[cindex].Selected = true;