[英]MessageBox doesn't take focus
单击“输入”按钮时,将显示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");
}
您可以使用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");
}
我建议使用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");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.