我有三个表格
frm_Splash
,用于检查更新; frm_Wizard
完成首次运行设置;和 frm_Main
这是主程序。这些形式的关系如下图所示:
现在在
Program.cs
我有这个代码:
public static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frm_Main());
}
将
frm_Main
设置为我的主要形式。处理 frm_Wizard
和 frm_Main
的最佳做法是什么?我不希望它们在完成更新之前加载(如果有的话)。
此后,如果需要显示向导,则初始屏幕应消失并出现向导。
最后,一旦完成所有更新和首次设置,就会显示主窗体(但不是之前)。我如何实现这一切?
我知道的一些事情:
frm_Splash
设置为启动形式,但是当我关闭它时,整个程序都会关闭。最后,我正在寻找一些如何执行此操作的通用代码或概念。我已经熟悉 C# 编码,因此您不需要编写所有内容。我只是在寻找解决这个问题的最佳实践。即我应该在
Program.cs
或每个表单的加载事件中编码吗?
需要注意的一件事是,您不需要使用
Application.Run
来启动表单。因此,您只需在 Main
函数中创建一个 3 步流程即可:
public static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Show splash form (which checks for updates)
FormSplash splash = new FormSplash();
splash.ShowDialog();//will wait until splash closed
//check if first run and show if needed
if(IsFirstRun())
{
FormWizard wizard = new FormWizard();
wizard.ShowDialog();//will wait until wizard is closed
}
//Finally, run your application as normal
Application.Run(new frm_Main());
}
注意:我不知道使用
Application.Run
启动主窗体的好处,我假设其中之一允许访问应用程序状态功能(例如退出),但我可以说我已经使用这种技术过去的启动画面,并且这样做没有任何问题