我有一个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());
}
任何帮助都将不胜感激。
还有一点,测试控制台应用程序运行正常,但我希望这个应用程序是表单应用程序。
答案 0 :(得分: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
,但上面的模糊命名空间/类名称只是更加健壮。< / p>
其他替代方法包括重命名自定义Application
类(如果它确实属于您自己的类),而不是为该文件的任何命名空间(或使用{{1}的任何文件)添加using
} System.Windows.Forms
class),为Application
添加别名(这可以通过类似System.Windows.Forms.Application
)等来完成。
答案 1 :(得分:0)
当使用实体模型框架连接到碰巧有一个名为“Application”的表的数据库时,我遇到了这个问题。一旦为数据库生成了类,我立即有两个“应用程序”类导致了有问题的错误。在我的Program.cs文件的Main()方法中,以下代码更改修复了问题:
System.Windows.Forms.Application.EnableVisualStyles();
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
System.Windows.Forms.Application.Run(new MyForm());
答案 2 :(得分:0)
我知道这是一个坏事,但这适用于我今天的情况。 @James G的上述回答使我意识到,我导入了一个包含“应用程序”定义的Web服务,这也导致了此错误。作为检查工作的一部分,请确保任何导入的服务均不包含“应用程序”。
如果有人要导入它,DynamicsSecurityAdminService就是对我进行的导入。