Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在自定义面板控件中处理释放键_C#_Event Handling_Keyboard_Onkeyup - Fatal编程技术网

C# 在自定义面板控件中处理释放键

C# 在自定义面板控件中处理释放键,c#,event-handling,keyboard,onkeyup,C#,Event Handling,Keyboard,Onkeyup,我有来自面板的自定义控件,我需要用鼠标进行选择。我发现,对于面板,我必须覆盖ProcessCmdKey,它对按键起作用,但如果我想处理控制键释放的情况,该怎么办?谢谢也许这可以帮助您: const int WM_KEYDOWN = 0x100; const int WM_KEYUP = 0x101; protected override bool ProcessKeyPreview(ref Message m) { if (m.Msg == WM_KEYDOWN &&

我有来自面板的自定义控件,我需要用鼠标进行选择。我发现,对于面板,我必须覆盖ProcessCmdKey,它对按键起作用,但如果我想处理控制键释放的情况,该怎么办?谢谢

也许这可以帮助您:

const int WM_KEYDOWN = 0x100;
const int WM_KEYUP = 0x101;

protected override bool ProcessKeyPreview(ref Message m)
{
    if (m.Msg == WM_KEYDOWN && (Keys)m.WParam == Keys.ControlKey)
    {
        //Do something
    }
    else if (m.Msg == WM_KEYUP && (Keys)m.WParam == Keys.ControlKey)
    {
        //Do something
    }

    return base.ProcessKeyPreview(ref m);
}
你可以看看这个(如果你还没有):