[英]DataGridView: 'cannot convert from method group to keys
我有一個帶有datagridview的WinFormApp,我正在嘗試編寫一種方法,當您在選定的行上按Enter時,該方法會執行某些操作。 例如,gridview顯示了我數據庫中的一些數據,它有4列,在按所需方式完成對這些列的編輯后,按Enter鍵,數據將與新值一起保存在數據庫中。 目前我的Form1()中有這個
dataGridView1.PreviewKeyDown += new PreviewKeyDownEventArgs(dataGridView1_PreviewKeyDown);
我認為這是不正確的,方法是這樣的:
void dataGridView1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// do something
}
}
我是編程新手,所以非常感謝您提供很好的解釋。
謝謝!
您是否嘗試過使用CellValueChanged事件? 如果您有更新數據庫的代碼,它應該自動執行。
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show("Test if works"); //it works
}
編輯-
另外,如果您希望它僅在選定的行/列中按Enter鍵時執行命令,則可以使用類似
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if(e.ColumnIndex == 1)
{
MessageBox.Show("Test if works"); //it works
}
}
此處,dgv是DatawGridView的對象,僅當用戶更改單元格的內容時才會觸發此事件。 這意味着,如果一個單元格值為“ abc”,並且用戶在同一單元格中再次鍵入“ abc”,則不會觸發此事件。 同樣,如果用戶在編輯后按下鍵盤上的“ Escape”鍵,則也不會觸發此事件。 這意味着在編輯后,如果用戶按下鍵盤上的“ Enter / Return”鍵,則在新舊值不相同的情況下會觸發此事件。
private void dgv_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
//code to save your changed data
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.