DataGridView響應鍵盤事件
阿新 • • 發佈:2020-06-08
問題:
在做《研發日工資表》的時候,需要在單元格編輯時響應鍵盤按鍵(按F6向下批量填充資料)。
dataGridView1_KeyPress(object sender,KeyPressEventArgs e) 事件不起作用。
解決:
捕獲鍵盤重寫鍵盤事件方法ProcessCmdKey(ref Message msg,Keys keyData)
,然後判斷按鍵,進行處理響應的功能。
直接在窗體中覆寫即可。
protected override bool ProcessCmdKey(ref Message msg,Keys keyData)
{
if (keyData == Keys.Up)//上鍵
{
int index = dataGridView1.CurrentCell.RowIndex;
if (index > 0)
{
dataGridView1.CurrentCell = dataGridView1.Rows[index--].Cells[0];
dataGridView1.Rows[index].Cells[0].Selected = true ;
}
return true;
}
if (keyData == Keys.Down)//下鍵
{
int index = dataGridView1.CurrentCell.RowIndex;
if (index < dataGridView1.RowCount -1)
{
dataGridView1.CurrentCell = dataGridView1.Rows[index++].Cells[0];
dataGridView1.Rows[index].Cells[0].Selected = true;
}
return true;
}
if (keyData == Keys.Enter)//Enter鍵
{
DataGridView1_CellDoubleClick(null,null);
}
return base.ProcessCmdKey(ref msg,keyData);
}
參考:
[1]. 捕獲鍵盤事件控制DataGridView選中行改變 https://www.jianshu.com/p/6f406e5f7c34