DataGridView keydown event not working in C#

前端 未结 5 679
北恋
北恋 2020-11-28 11:02

DataGridView keydown event is not working when I am editing text inside a cell.

I am assigning shortcut Alt+S to save the data, it works when cell

5条回答
  •  日久生厌
    2020-11-28 11:17

    This is true that EditingControlShowing can help, but not if you wants to catch the Enter key. In that case, one should use the following method:

     private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (e.Control is DataGridViewTextBoxEditingControl)
            {
                DataGridViewTextBoxEditingControl tb = e.Control as DataGridViewTextBoxEditingControl;
                tb.KeyDown -= dataGridView_KeyDown;
                tb.PreviewKeyDown -= dataGridView_PreviewKeyDown;
                tb.KeyDown += dataGridView_KeyDown;
                tb.PreviewKeyDown += dataGridView_PreviewKeyDown;
            }
        }
    
        void dataGridView_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyData == Keys.Enter)
            {
                
            }
        }
    

提交回复
热议问题