0

我构建了一个 C# Windows 窗体应用程序。我的主模块有问题。(默认命名为“Program.cs”)

当我尝试编译并运行时:

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(..));它导致了这个问题。

为什么它在“无变量”运行时不使用变量运行?(对不起,我不太知道怎么称呼它)。

为什么会这样?问题是什么?

4

2 回答 2

4

在创建任何窗口之前,您必须调用Application.SetCompatibleTextRenderingDefault 。InvalidOperationException如果在创建窗口后调用它将抛出。这就是您的应用程序崩溃的原因。

如果您想以这种方式编写代码,只需在调用后移动您的表单变量。

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
MessageForm f = new MessageForm("Main");
Application.Run(f);
于 2012-12-07T00:32:17.077 回答
3

You're enabling visual styles and compatible text rendering after the first form is created. Try to change the order of the calls like this:

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    MessageForm f = new MessageForm("Main");
    Application.Run(f);

In other words: create the form after calling methods that affect the global behavior of the application...

于 2012-12-07T00:32:42.693 回答