当我单击enter-按钮时,将显示MessageBox。我希望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");
}发布于 2016-04-06 07:34:59
您可以使用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");
}发布于 2016-04-06 07:44:40
我使用Messagebox的这种方法进行推荐。
MessageBox.Show(Window, String)摘自MSDN:
在指定窗口前面显示消息框。消息框显示一条消息并返回结果。
您可以将其用作以下内容:
MessageBox.Show(Application.Current.MainWindow, "I'm on top of teh window so I should get focus");编辑:
在调用MessageBox之前,您应该将焦点返回到主窗口。
private void _textBox_OnKeyUp(object sender, KeyEventArgs e)
{
if (e.Key != Key.Enter)
return;
//this.Focus() or at least YourWindow.Focus()
MessageBox.Show("Bla-bla");
}https://stackoverflow.com/questions/36444300
复制相似问题