5

我有一个 C# 表单应用程序。我在程序中导入了一个额外的 CS 文件,现在它不再编译了。每次我尝试编译时,我都会收到以下消息:

Application does not contain a definition for 'EnableVisualStyles'
Application does not contain a definition for 'SetCompatibleTextrenderingDefault'
Application does not contain a definition for 'Run'

当我单击错误时,它会将我带到 Programs.cs。它只包含以下信息:

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

任何帮助,将不胜感激。

还有一点,一个测试控制台应用程序工作正常,但是我希望这个应用程序成为表单应用程序。

4

3 回答 3

8

您为名称空间添加了一条新using语句,该名称空间具有另一个定义Application, (它可能是您自己的)并且优先。您可以使用完全限定名称来确保您的目标是正确的Application类:

global::System.Windows.Forms.Application.EnableVisualStyles();
global::System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
global::System.Windows.Forms.Application.Run(new Form1());

global::(只要您没有命名的类,您就可以省略,System但以上只是在命名空间/类名不明确的情况下更加健壮一点。

其他替代方法包括重命名自定义Application类,如果它确实是您自己的,不using为该文件(或使用System.Windows.Forms Application该类的任何文件)所在的任何命名空间添加一个别名,为System.Windows.Forms.Application(这由类似的东西完成using FormApplication = System.Windows.Forms.Application;)等.

于 2013-03-12T20:56:55.527 回答
0

我在使用实体模型框架连接到恰好有一个名为“应用程序”的表的数据库时遇到了这个问题。为数据库生成类后,我立即有两个“应用程序”类导致了相关错误。在我的 Program.cs 文件的 Main() 方法中,以下代码更改解决了该问题:

System.Windows.Forms.Application.EnableVisualStyles();         
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
System.Windows.Forms.Application.Run(new MyForm());
于 2016-07-26T13:14:10.170 回答
0

我知道这是一个死灵肿块,但它适用于我今天的情况。@James G 上面的回答让我意识到我已经导入了一个包含“应用程序”定义的 Web 服务,这也导致了这个错误。作为检查的一部分,请确保任何导入的服务都不会偶然包含“应用程序”。

如果有人正在导入它,DynamicsSecurityAdminService 就是对我做的那个。

于 2020-12-08T16:22:32.783 回答