C#如何不在keydown事件中判断ctrl alt shift中的两个以上按键被按下
比如在panel的mousemove事件中,判断ctrl和alt是否同时被按下时(Control.ModifierKeys&Keys.Alt)==Keys.Alt&&(C...
比如在panel的mousemove事件中,判断ctrl和alt是否同时被按下时
(Control.ModifierKeys & Keys.Alt) == Keys.Alt && (Control.ModifierKeys & Keys.Control) == Keys.Control
或
Control.ModifierKeys == Keys.Alt && Control.ModifierKeys == Keys.Control
或
(Control.ModifierKeys & Keys.Alt) !=0 && (Control.ModifierKeys & Keys.Control) != 0
均没反应,但是只判断alt(就是把关于control的都去掉),那么三个表达都可以,难道panel的mousemove事件里只支持判断单个按键吗 展开
(Control.ModifierKeys & Keys.Alt) == Keys.Alt && (Control.ModifierKeys & Keys.Control) == Keys.Control
或
Control.ModifierKeys == Keys.Alt && Control.ModifierKeys == Keys.Control
或
(Control.ModifierKeys & Keys.Alt) !=0 && (Control.ModifierKeys & Keys.Control) != 0
均没反应,但是只判断alt(就是把关于control的都去掉),那么三个表达都可以,难道panel的mousemove事件里只支持判断单个按键吗 展开
3个回答
推荐于2018-05-18 · 知道合伙人软件行家
关注
展开全部
KeyEventArgs类的主属性(KeyUp和KeyDown事件的一个参数)
(1).Alt属性:用来获取一个值,该值提示是否曾按下了Alt键
(2).Control属性:用来获取一个值,该值提示是否曾按下了Crtl键
(3).Shift属性:用来获取一个值,该值提示是否曾按下了Shift键
(4).Handle属性:用来获取一个值,该值提示是否曾处理过此事件
(5).KeyCode属性:以Keys枚举值返回键盘键的键码,该属性不包含修改键信息,用于测试指定的键盘键
(6).KeyData属性:以Keys枚举值返回键盘键的键码,该属性包含修改键信息,用于判断按下键的所有信息(可返回组合键)
(7).KeyValue属性:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键的数字表示
(8).Modifiers属性:以Keys枚举值返回所按下的修改键,仅判断修改键的信息
(1).Alt属性:用来获取一个值,该值提示是否曾按下了Alt键
(2).Control属性:用来获取一个值,该值提示是否曾按下了Crtl键
(3).Shift属性:用来获取一个值,该值提示是否曾按下了Shift键
(4).Handle属性:用来获取一个值,该值提示是否曾处理过此事件
(5).KeyCode属性:以Keys枚举值返回键盘键的键码,该属性不包含修改键信息,用于测试指定的键盘键
(6).KeyData属性:以Keys枚举值返回键盘键的键码,该属性包含修改键信息,用于判断按下键的所有信息(可返回组合键)
(7).KeyValue属性:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键的数字表示
(8).Modifiers属性:以Keys枚举值返回所按下的修改键,仅判断修改键的信息
展开全部
1、(Control.ModifierKeys & Keys.Alt) == Keys.Alt && (Control.ModifierKeys & Keys.Control) == Keys.Control
2、Control.ModifierKeys == Keys.Alt && Control.ModifierKeys == Keys.Control
3、(Control.ModifierKeys & Keys.Alt) !=0 && (Control.ModifierKeys & Keys.Control) != 0
试了一下,3种方法中只有2显然是不对,1、3能正确识别。请检查程序其它地方有没有问题?
在事件处理事件中加入以下几行测试一下:
void Panel1_MouseMove(object sender, MouseEventArgs e)
{
MessageBox.Show(Control.ModifierKeys+"");
if ((Control.ModifierKeys & Keys.Alt) == Keys.Alt && (Control.ModifierKeys & Keys.Control) == Keys.Control) MessageBox.Show("正确1");
if (Control.ModifierKeys == Keys.Alt && Control.ModifierKeys == Keys.Control) MessageBox.Show("正确12");
if ((Control.ModifierKeys & Keys.Alt) !=0 && (Control.ModifierKeys & Keys.Control) != 0) MessageBox.Show("正确3");
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
监控e参数。
看你在按过个键时,
e参数中的键位码。
看你在按过个键时,
e参数中的键位码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询