簡體   English   中英

DataGridView:'無法從方法組轉換為鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM