1. 程式人生 > WINDOWS開發 >DataGridView響應鍵盤事件

DataGridView響應鍵盤事件

問題:

在做《研發日工資表》的時候,需要在單元格編輯時響應鍵盤按鍵(按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