2013-02-12 59 views
0

我在winform中有DataGridView,刪除已處理,驗證並刪除這些行。但是,按移位 + 刪除UI刪除行。我試圖設置一個booleanIsShiftPressed通過處理​​事件,但看起來很醜。當然,應該有更好的方式來做到這一點。處理Shift +刪除

回答

2

KeyUp Event

if (e.KeyCode == Keys.Del && e.Shift) 
{ 
    if (dataGridView1.SelectedRows.Count > 0) 
    { 
     //Do Stuff 
    } 
    e.Handled = true; 
} 
+0

不在Keyup工作,但在Keydown工作。批次清潔! – 2013-02-12 05:45:56

1

試試看你能嘗試trap the control in C# according to this article.

class MyDataGrid : System.Windows.Forms.DataGrid 
{ 
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
    { 
      const int WM_KEYDOWN = 0x100; 
      const int WM_SYSKEYDOWN = 0x104; 

      if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN)) 
      { 
       switch (keyData) 
       { 
        case Keys.Shift | Keys.Delete: 
         MessageBox.Show("shift + del pressed"); 
         break; 
       } 
      } 
      return base.ProcessCmdKey(ref msg, keyData); 
    } 
} 
+0

It works !!! Thanks – 2013-02-12 05:32:39

+0

很高興聽到:) – aspiring 2013-02-12 06:25:10