aba*_*eel 2 c# keyboard events
我有一个KeyDown和KeyUp事件的控件,如下所示.我遇到的问题是KeyDown中的'x'为TRUE,而KeyUp中的'x'总是为FALSE.我正在尝试检测Alt键(您可能已经猜到了).
有没有我不知道的gottcha.我的意思是,当我按下Alt时它会检测到它没问题但是在keyup上它是假的.
任何建议/想法
谢谢
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;
}
Run Code Online (Sandbox Code Playgroud)
您是否尝试检测Alt + [letter]事件?是这样,试试这个:
private void YourControl_KeyDown(object sender, KeyEventArgs e)
{
if((e.Alt) & (e.KeyCode == Keys.X))
{
MessageBox.Show("Alt-X pressed");
}
}
Run Code Online (Sandbox Code Playgroud)
对于只有Alt,试试这个:
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;
}
}
Run Code Online (Sandbox Code Playgroud)