所以我创建的应用程序将有一个加载资源的启动画面,完成后将加载应用程序的主窗体。在过去的时间里,我只是让启动画面拥有该主题并保持隐藏状态,但是我想要实际让我的主表单成为主持人,但我在表单之间转换时遇到了麻烦。我目前的做法是
void main(String[] args)
{
ApplicationContext appContext = new ApplicationContext(new SplashScreen());
appContext.ThreadExit += appContext_ThreadExit;
Application.Run(appContext);
}
place
private void appContext_ThreadExit(object sender, EventArgs e)
{
Application.Run(new MainForm());
}
这给我一个错误,你不能在线程上启动一个新的消息循环。那么我该如何正确执行这种转变呢?或者我已经使用SplashScreen拥有该线程的最佳方法了吗?
答案 0 :(得分:0)
以下是我提出的建议,但如果有人有更优雅或正确的方式,请随时告诉我。
bool isLoading = true;
MainForm.OnLoad()
-> creates and runs SplashScreen
MainForm.OnShow()
-> if isLoading is true, re-hide
SplashScreen.LoadingComplete
-> event to signal completion of loading events
MainForm.SplashScreenLoadingComplete
-> handler sets isLoading to false
-> calls Show() this time form will show
我使用后台工作程序处理SplashScreen中的加载