首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MessageBox不集中注意力

MessageBox不集中注意力
EN

Stack Overflow用户
提问于 2016-04-06 07:30:01
回答 2查看 5.1K关注 0票数 3

当我单击enter-按钮时,将显示MessageBox。我希望MessageBox关闭时,我再次按回车按钮,如往常一样。问题是--它没有焦点,但是TextBox有,当我单击enter按钮时,_textBox_OnKeyUp甚至会一次又一次地被调用。我该如何解决我的问题?

标记:

代码语言:javascript
复制
<Grid>
    <TextBox Name="_textBox"
        Width="100"
        Height="30"
        Background="OrangeRed"
        KeyUp="_textBox_OnKeyUp"/>
</Grid>

代码:

代码语言:javascript
复制
private void _textBox_OnKeyUp(object sender, KeyEventArgs e)
{
    if (e.Key != Key.Enter)
        return;

    MessageBox.Show("Bla-bla");
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-06 07:34:59

您可以使用KeyDown事件,因为MessageBox响应KeyDown事件:

代码语言:javascript
复制
<TextBox Name="_textBox"
         Width="100"
         Height="30"
         Background="OrangeRed"
         KeyDown="_textBox_OnKeyDown"/>

和:

代码语言:javascript
复制
private void _textBox_OnKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key != Key.Enter)
       return;

    MessageBox.Show("Bla-bla");
}
票数 3
EN

Stack Overflow用户

发布于 2016-04-06 07:44:40

我使用Messagebox的这种方法进行推荐。

代码语言:javascript
复制
MessageBox.Show(Window, String)

摘自MSDN:

在指定窗口前面显示消息框。消息框显示一条消息并返回结果。

您可以将其用作以下内容:

代码语言:javascript
复制
MessageBox.Show(Application.Current.MainWindow, "I'm on top of teh window so I should get focus");

编辑:

在调用MessageBox之前,您应该将焦点返回到主窗口。

代码语言:javascript
复制
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");
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36444300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档