摘要: 我的申请从许可证验证表格开始,并确定客户的许可证是否有效。它应该启动主窗体。
但是我收到以下错误:在单个线程上启动第二个消息循环不是有效的操作。请改用 Form.ShowDialog。
我的实现:
static class Program
{
static AppStartUp appStartUp_;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
appStartUp_ = new AppStartUp();
appStartUp_.OnValidationSuccessful += OnValidationSuccessful;
Application.Run(appStartUp_);
}
static void OnValidationSuccessful()
{
appStartUp_.OnValidationSuccessful -= OnValidationSuccessful;
appStartUp_.Close();
appStartUp_.Dispose();
//Application.ExitThread();
Application.Run(new Manager());
}
}
我做错了什么吗?
您的第一个 Application.Run 在 OnValidationSuccessful 事件期间仍在运行。假设该事件正在关闭表单,请尝试设置一个变量:
static bool appOK = false;
然后在你的事件中,将其设置为 true:
static void OnValidationSuccessful()
{
appOK = true;
}
那么在你的主程序中,它看起来像这样:
Application.Run(appStartUp_);
if (appOK) {
Application.Run(new Manager());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)