0

これらの行を認証DataGridViewwinformて削除する削除処理を使用しています。Shiftただし、 +を押すDelと から行が削除されUIます。boolean IsShiftPressedイベントを処理して設定しようとしkeydownましたが、見苦しく見えます。きっともっと良い方法があるはずです。

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 に答える