1. 程式人生 > >winform程式C#控制tab和enter按鍵跳轉方式橫向豎向任意方式跳datagirdview

winform程式C#控制tab和enter按鍵跳轉方式橫向豎向任意方式跳datagirdview

重寫: override bool ProcessCmdKey這個方法。每一次按鍵都會進入這個方法裡
寫了部分註釋,其它的你們根據自己需要改一下就行
///
/// 控制datagirdview格跳轉轉換enter或tab
///
///
///
///
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
//加這個判斷以免在列上按按鈕會報錯
if (keyData == Keys.Enter && this.dataGridView1.CurrentCell != null)
{
//return true; //這個return用來跳過預設的Enter事件效果
//return base.ProcessCmdKey(ref msg, Keys.Tab);
int columnC = dataGridView1.CurrentCell.ColumnIndex;
if(columnC==6)
{
//如果是最後一行就不進行操作
if (dataGridView1.CurrentCell.RowIndex + 1 == dataGridView1.Rows.Count)
{
return true;
}
//設定相應列,相當於按回車選中同一行的下一個單元格,效果同tab鍵
dataGridView1.CurrentCell=dataGridView1[2,(dataGridView1.CurrentCell.RowIndex+1)];
}
//其它列正常操作
if (columnC == 7)
{
return base.ProcessCmdKey(ref msg, keyData);
}
else
{
SendKeys.Send("{Tab}");
return true;
}
}
//return false;
return base.ProcessCmdKey(ref msg, keyData);
}