我构建了一个C#Windows窗体应用程序。我的主模块有问题。 (默认命名为" Program.cs")
当我尝试编译& run:
时MessageForm f = new MessageForm("Main");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(f);
失败,(Windows应用程序崩溃消息),但是:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MessageForm("Main"));
运行得很好。
为什么在使用"无变量"? (对不起,我几乎不知道怎么称呼它。)
为什么这样?有什么问题?
答案 0 :(得分:4)
在创建任何窗口之前,您必须致电Application.SetCompatibleTextRenderingDefault。如果在创建窗口后调用它,它将抛出InvalidOperationException
。这就是您的应用程序崩溃的原因。
如果您想以这种方式编写代码,只需在调用后移动表单变量即可。
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
MessageForm f = new MessageForm("Main");
Application.Run(f);
答案 1 :(得分:3)
创建第一个表单后,您将启用视觉样式和兼容的文本呈现。尝试更改这样的调用顺序:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
MessageForm f = new MessageForm("Main");
Application.Run(f);
换句话说:在调用影响应用程序全局行为的方法后创建表单...