Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序启动中的OpenFileDialog立即关闭_C#_Wpf_Winforms - Fatal编程技术网

C# 应用程序启动中的OpenFileDialog立即关闭

C# 应用程序启动中的OpenFileDialog立即关闭,c#,wpf,winforms,C#,Wpf,Winforms,我想在应用程序启动时加载由解决方案中的另一个项目序列化的一些文件: App.xaml.cs: <Application (...) Startup="Application_Startup"> </Application> OpenUserConfig方法: private void OpenUserConfig() { var dial = new OpenFileDialog(); if (dial.Sh

我想在应用程序启动时加载由解决方案中的另一个项目序列化的一些文件:
App.xaml.cs:

<Application (...)
         Startup="Application_Startup">
</Application>
OpenUserConfig方法:

private void OpenUserConfig()
        { 
var dial = new OpenFileDialog();

            if (dial.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
            //do sth
        }
这两种方法都在App类中,因此存在一个问题:
消息框和文件对话框在弹出几秒钟后消失。
我试图找到messagebox的解决方案(通过使用MessageBoxOptions.DefaultDesktopoly),但我无法维持OpenFileDialog,我该怎么做?

另外(这可能很重要-我不知道):我的应用程序中有SplashScreen。

您可以使用dialog创建自己的表单并打开此表单。这是最快的方式。

对话框总是需要一个所有者窗口。如果您没有明确指定一个,那么它将查找一个。如果所有者消失,则该对话框也是历史记录。其推论是,通常在没有稳定窗口的情况下显示对话框是一个非常糟糕的主意。一点都不喜欢,也不喜欢闪屏。只需等待显示它,直到主窗口启动并运行。使用File+Open命令,就可以用样板文件的方式将其留给用户了。@HansPassant这是对我问题的很好的回答,我又创建了一个窗口,它成功了。非常感谢。表格的性质与此无关。杀死它的是它意外地被钉在启动屏幕上的事实。@DonBoitnott是对的,crearing另一个表单根本没有帮助。
private void OpenUserConfig()
        { 
var dial = new OpenFileDialog();

            if (dial.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
            //do sth
        }