当我单击输入按钮时,将显示MessageBox.我希望像往常一样再次单击Enter键时关闭MessageBox.问题是-它没有焦点,但是TextBox有焦点,当我单击Enter键时,_textBox_OnKeyUp事件处理程序一次又一次被调用.我该如何解决我的问题?
标记:
<Grid>
<TextBox Name="_textBox"
Width="100"
Height="30"
Background="OrangeRed"
KeyUp="_textBox_OnKeyUp"/>
</Grid>
码:
private void _textBox_OnKeyUp(object sender, KeyEventArgs e)
{
if (e.Key != Key.Enter)
return;
MessageBox.Show("Bla-bla");
}
解决方法:
您可以改用KeyDown
事件,因为MessageBox响应KeyDown事件:
<TextBox Name="_textBox"
Width="100"
Height="30"
Background="OrangeRed"
KeyDown="_textBox_OnKeyDown"/>
和:
private void _textBox_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.Enter)
return;
MessageBox.Show("Bla-bla");
}