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());
}

どんな助けでも大歓迎です。

もう 1 点、テスト コンソール アプリは問題なく動作しますが、このアプリをフォーム アプリケーションにしたいと考えています。

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クラスを使用するファイル)の名前空間に for を追加しない、エイリアスを追加するSystem.Windows.Forms.Application(これは のようなものによって行われますusing FormApplication = System.Windows.Forms.Application;)などが含まれます。 .

于 2013-03-12T20:56:55.527 に答える
0

Entity Model Framework を使用して、たまたま "Application" という名前のテーブルを持つデータベースに接続しているときに、この問題に遭遇しました。データベース用のクラスが生成されると、問題のエラーの原因となった 2 つの「アプリケーション」クラスがすぐに作成されました。私の 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 に答える