防止Windows窗体datagridview在单元格编辑后更改行

时间:2013-08-28 17:12:32

标签: c# .net winforms datagridview

我在Windows窗体中有一个datagridview,编辑值时的默认行为是在单元格编辑之后,当我按下回车键时,所选行将更改为下一行。

enter image description here

我不想要那样,我想退出编辑模式,但要停留在同一个单元格中。

enter image description here

有可能吗?

3 个答案:

答案 0 :(得分:5)

您可以自定义DataGridView以覆盖ProcessDialogKey方法:

public class CustomGrid : DataGridView {            
        protected override bool ProcessDialogKey(Keys keyData) {
            if (keyData == Keys.Enter) {    
                EndEdit();
                return true;
            }
            return base.ProcessDialogKey(keyData);
        }
}

答案 1 :(得分:1)

KeyDown事件:

如果e.KeyCode = Keys.Enter则e.SuppressKeyPress = True

答案 2 :(得分:0)

非常简单。编辑时将cellindex保存在变量中,然后重新选择它。

获取列和行索引:

e.ColumnIndex;
e.RowIndex;

并将它们保存到变量中。编辑完单元格后,重新选择单元格:

dataGridView1.Rows[rindex].Cells[cindex].Selected = true;