0

我需要显示一个文件夹对话框,以便用户可以在我的应用程序运行之前选择一个路径。我一切正常,但我似乎无法将错误消息框保持在前台。如果用户选择了错误的路径,则会弹出一个消息框,但它会留在桌面上任何打开的窗口后面的背景中。

我是 WPF 的新手,使用此应用程序的 winforms 版本,我可以指定 fdb.ShowDialog(this),它会将错误消息框保持在前台。但使用 WPF 时,消息框窗口始终位于所有其他打开的窗口之后。

关于如何解决这个问题的任何想法?谢谢。

    while (!found)
    {
        if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            if ((File.Exists(Path.Combine(fbd.SelectedPath, "user.exe"))))
                return fbd.SelectedPath;
            else                   
                System.Windows.Forms.MessageBox.Show("Cannot find user.exe in the selected path! Please try again.", "File Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);

        }
    }
4

1 回答 1

1

将您的代码移动到Window_Loaded事件而不是从构造函数调用它 -

<Window Loaded="Window_Loaded"/>

背后的代码 -

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    // Your code here
}

Since, your window is not loaded yet as the code execution haven't get passed the constructor yet and in the meanwhile error message pops up. So, once the window gets loaded it will comes over the message box.

于 2012-11-25T16:43:19.577 回答