簡體   English   中英

MessageBox沒有關注焦點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM