不能在 C# 中使用 KeyCode

Can't use KeyCode in C#

我正在努力做到这一点,以便当用户按下键盘上的 PrintScreen 按钮时,会出现一个消息框。

我在网上看了很多,这段代码似乎是如何去做的标准。

问题是,我收到一条错误消息,

System.Windows.Forms.KeyPressEventArgs' does not contain a definition for 'KeyCode' and no extension method 'KeyCode' accepting a first argument of type 'System.Windows.Forms.KeyPressEventArgs' could be found (are you missing a using directive or an assembly reference?)

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyCode == Keys.PrintScreen)
        {
            MessageBox.Show("Test");
        }
    }

不使用 KeyPress,而是使用 KeyDown 事件。 KeyPress 事件只会在可打印字符上触发,而 PrintScreen 不是其中之一,因此它只会公开 KeyChar 属性,而 KeyDown 或 KeyUp 将公开 KeyCode。

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if(e.KeyCode == Keys.PrintScreen)
    {
        MessageBox.Show("Test");
    }
}

您可以使用

 e.Key == Key.Snapshot

这将适用于 KeyUp 和 KeyDown 事件。