protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter) //监听回车事件
{
if (dataGridViewX1.IsCurrentCellInEditMode) //如果当前单元格处于编辑模式
{
if (dataGridViewX1.CurrentCell.RowIndex == dataGridViewX1.Rows.Count - 1)
{
SendKeys.Send("{Tab}");
}
else
{
SendKeys.Send("{Up}");
SendKeys.Send("{Tab}");
}
}
}
//继续原来base.ProcessCmdKey中的处理
return base.ProcessCmdKey(ref msg, keyData);
}
private void dataGridViewX1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{Tab}");
e.Handled = true;
if ((dataGridViewX1.FirstDisplayedScrollingColumnHiddenWidth > 0) && !dataGridViewX1.Columns[dataGridViewX1.SelectedCells[0].ColumnIndex].Frozen)
{
dataGridViewX1.FirstDisplayedScrollingColumnIndex = dataGridViewX1.SelectedCells[0].ColumnIndex;
}
}
}
本文介绍了一种在DataGridView中使用回车键进行导航的方法。通过重写ProcessCmdKey方法和KeyDown事件,实现了当按下回车键时,可以切换到下一个单元格或者上一个单元格并跳转至下一个单元格的功能。此外,还处理了DataGridView处于编辑状态时的特殊情况。
2121

被折叠的 条评论
为什么被折叠?



