Application.Run无法使用变量运行?

时间:2012-12-07 00:26:01

标签: c# .net winforms user-interface

我构建了一个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"));

运行得很好。

  • 注意最后一个命令(Application.run(..));它导致了这个问题。

为什么在使用"无变量"? (对不起,我几乎不知道怎么称呼它。)

为什么这样?有什么问题?

2 个答案:

答案 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);

换句话说:在调用影响应用程序全局行为的方法后创建表单...