0

デフォルトでは、Windows C# アプリケーションを作成すると、何らかのフォームを開くことから始まります

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

フォームを作成する前にメイン関数でいくつかのことを行うことは可能ですか - いくつかのオブジェクトを作成し、このオブジェクトのいくつかのメソッドを実行し、結果に応じて最後にいくつかのフォームを作成するか、またはフォームをまったく作成しないでください - アプリケーションを閉じます?

4

3 に答える 3

2

もちろん。試しましたか?

static void Main()
{
    // you can add code here
    Application.EnableVisualStyles();
    // and/or here
    Application.SetCompatibleTextRenderingDefault(false);
    // and so on...
    Application.Run(new Form1());
}

だから多分次のようなもの:

static void Main()
{
    var someObject = SomeFactory.Fetch(someCriteria);
    if (someObject.SomeValue == false)
        Application.Exit();

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

多分:

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    var someObject = SomeFactory.Fetch(someCriteria);
    if (someObject.SomeValue)
        Application.Run(new FormForValueBeingSet());
    else
        Application.Run(new FormForValueNotBeingSet());
}

コードは単なるコードです。変更したり、必要に応じて追加/編集/削除したりできます。それが WinForms アプリケーションであるという事実は、アプリケーションの起動時にそれが実行されるという基本的な前提を変更しませんstatic void Main()。メソッドにあるものは何でも実行されます。

于 2013-11-06T13:52:19.947 に答える
2

もちろん。任意の方法で変更static void Main()できます。

于 2013-11-06T13:50:18.173 に答える
1

はい、できます。

フォーム作成コードの前にいくつかのコードを配置することで、これをテストできます...

static void Main()
{
    DateTime now = DateTime.Now;
    DateTime tomorrow = now.AddDays(1);

    if (DateTime.Compare(now, tomorrow) == 0)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

... 次に、Main() の先頭にブレークポイントを配置します

...そして、コードをステップ実行して、その効果を確認します。

于 2013-11-06T14:03:23.957 に答える