我已经定义,当按下一个键时,使用大小写来区分不同的键,就会发生一个 Action
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.B:
//something happens here
break;
}
}
当我尝试添加键修饰符(例如“Ctrl”)时,我是这样做的
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.B && e.Modifiers == Keys.Control:
//something happens here
break;
}
}
编辑:当我尝试这样做时,它说'&&'不能应用于'Windows.System.Forms.Keys'和'bool'类型的操作数
。
如何正确完成?
最佳答案
您不能将 if
语句作为 case 标签的一部分。 Case直接将标签中的常量值与switch中的变量进行比较; &&
运算符的结果是 bool
,它不能与 KeyEventArg
进行比较。您需要单独添加它或使用 if
语句。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.B:
if (e.Modifiers == Keys.Control)
//something happens here
//else
break;
}
}
关于c# - 使用大小写的键修饰符不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23614492/