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