【问题标题】:Application.Run fails to run with variable?Application.Run 无法使用变量运行?
【发布时间】:2012-12-07 00:26:00
【问题描述】:

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

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

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

【问题讨论】:

  • “崩溃”是什么意思 - 错误是什么?
  • 试着把变量声明放在SetCompatibleTextRendering下面

标签: c# .net winforms user-interface


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    在创建第一个表单后,您将启用视觉样式和兼容的文本呈现。尝试像这样更改调用的顺序:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多