点击进入按钮后,会显示MessageBox
。当我像往常一样再次点击进入按钮时,我希望MessageBox
关闭。问题是 - 它没有焦点,但TextBox
有,当我点击enter-button _textBox_OnKeyUp
时,会一次又一次地调用eventhandler。我怎样才能解决我的问题?
标记:
<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");
}
答案 0 :(得分:3)
您可以使用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");
}
答案 1 :(得分:0)
我建议使用Messagebox的this method。
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");
}