在Control.KeyUp事件检测问题Alt键 [英] Problems Detecting Alt Key on the Control.KeyUp event
本文介绍了在Control.KeyUp事件检测问题Alt键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个的KeyDown和KeyUp事件控制,如下图所示。我遇到的问题是,'X'是的KeyDown真实的,但总是的KeyUp FALSE。我试图检测Alt键(正如你可能已经猜到了)。
有没有,我不知道gottcha。我的意思是,当我按ALT检测就OK了,但是,KEYUP它是假的。
任何建议/想法
感谢
私人无效MyControl_KeyDown(对象发件人,发送KeyEventArgs E)
{
布尔X;
X =((int)的(e.KeyData&放大器;!Keys.Alt)= 0);
X =(e.KeyData&安培; Keys.Alt)== Keys.Alt;
X = e.Alt;
}
私人无效MyControl_KeyUp(对象发件人,发送KeyEventArgs E)
{
布尔X;
X =((int)的(e.KeyData&放大器;!Keys.Alt)= 0);
X =(e.KeyData&安培; Keys.Alt)== Keys.Alt;
X = e.Alt;
}
解决方案
您想检测Alt + [字母]事件?是这样的,试试这个:
私人无效YourControl_KeyDown(对象发件人,发送KeyEventArgs E)
{
如果((e.Alt)及(e.KeyCode == Keys.X))
{
MessageBox.Show(ALT-X按下);
}
}
对于刚刚Alt键,试试这个:
私人无效YourControl_KeyDown(对象发件人,发送KeyEventArgs E)
{
如果(e.KeyCode == Keys.Menu)
{
// YourCode
e.Handled = TRUE;
}
}
私人无效YourControl_KeyUp(对象发件人,发送KeyEventArgs E)
{
如果(e.KeyData == Keys.Menu)
{
// YourCode
e.Handled = TRUE;
}
}
I have a control with KeyDown and KeyUp events as shown below. The problem I am having is that 'x' is TRUE in KeyDown but always FALSE in KeyUp. I am trying to detect the Alt key (as you may have guessed).
Is there a gottcha that I don't know. I mean, when I press Alt it detects it ok but on keyup it's false.
Any suggestions/ideas
Thanks
private void MyControl_KeyDown(object sender, KeyEventArgs e)
{
bool x;
x = ((int) (e.KeyData & Keys.Alt) != 0);
x = (e.KeyData & Keys.Alt) == Keys.Alt;
x = e.Alt;
}
private void MyControl_KeyUp(object sender, KeyEventArgs e)
{
bool x;
x = ((int) (e.KeyData & Keys.Alt) != 0);
x = (e.KeyData & Keys.Alt) == Keys.Alt;
x = e.Alt;
}
解决方案
Are you trying to detect an Alt+[letter] event? Is so, try this:
private void YourControl_KeyDown(object sender, KeyEventArgs e)
{
if((e.Alt) & (e.KeyCode == Keys.X))
{
MessageBox.Show("Alt-X pressed");
}
}
For just Alt, try this:
private void YourControl_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Menu)
{
//YourCode
e.Handled = true;
}
}
private void YourControl_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Menu)
{
//YourCode
e.Handled = true;
}
}
这篇关于在Control.KeyUp事件检测问题Alt键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文