0

我正在处理DataGridView一个winform带有删除的操作,它对这些行进行身份验证和删除。但是,按Shift+Del会从 中删除行UI。我尝试boolean IsShiftPressed通过处理keydown事件来设置 a ,但这看起来很难看。当然应该有更好的方法来做到这一点。

4

2 回答 2

2

试穿KeyUp Event

if (e.KeyCode == Keys.Del && e.Shift)
{
   if (dataGridView1.SelectedRows.Count > 0)
   {
      //Do Stuff
   }
   e.Handled = true;
}
于 2013-02-12T04:54:08.937 回答
1

您可以根据本文尝试在 C# 中捕获控件。.

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);
   }
}   
于 2013-02-12T04:54:31.573 回答