不能在 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 事件。
我正在努力做到这一点,以便当用户按下键盘上的 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 事件。