0

我的代码是:

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
    if (keyData == (Keys.LWin | Keys.M))
    {
        MessageBox.Show("LWin M");
        return true;
    }
    return base.ProcessCmdKey(ref msg, keyData);
}

private void Form1_Load(object sender, EventArgs e)
{
    this.FormBorderStyle = FormBorderStyle.None;
}

MessageBox.Show("LWin M");从来没有工作,谁能帮助我?谢谢

更新

MessageBos.Show("LWin M"); 

只是为了测试,真正的代码是:

this.WindowState = FormWindowState.Minimized;
4

2 回答 2

1

这与 FormBorderStyle 没有任何关系,当您省略 Load 事件时,您的代码也不起作用。在将其发送到程序之前,Windows 会使用 Win + M 快捷键。你可以很容易地知道它做了什么,它最小化了活动窗口。

切勿将 Windows 键用作自己的快捷方式,您需要坚持使用 Ctrl、Alt 和 Shift。即使使用未分配的快捷方式也是一个坏主意,这将在下一个 Windows 版本中中断。

于 2012-08-08T10:09:51.357 回答
0

这取决于你想要什么

如果您想检查是否按下了“M”或“LWin”,请尝试以下部分:

if (keyData == Keys.LWin || keyData == Keys.M)
于 2012-08-08T09:10:28.853 回答