1

C# がどのようにスタートアップを実行したいか、いつも私を悩ませていました。だから今、私は自分の主な方法を作ろうとしています。動いていない:

私はこの主な方法を提供しました:

[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public static void Main()
{
    Model model= new Model();
    Controller controller = new Controller(model);
    MainWindow window = new MainWindow(controller, model);
}

このメソッドは実行されますが、視覚的には何も見えません。次の通常のメインコードから何かが欠けていると思います:

Application.App app = new Application.App();
app.InitializeComponent();
app.Run();

同じコードで OnStartUp をオーバーライドしようとしましたが、例外がスローされます。他の解決策があれば、喜んで聞きます。MainWindow を最初に作成する必要がある理由がわかりません。

4

2 に答える 2

5

その通りです。Application をインスタンス化し、その上で Run を呼び出す必要があります。(これは Main で行います。)実行時にウィンドウを表示するには、次の 3 つのオプションがあります。

  • Run(Window) オーバーロードを使用します。MainWindow w = ...; new MyApp().Run(w);
  • たとえば、StartupUri を設定します。myApp.StartupUri = new Uri(...); myApp.Run();
  • Startup イベントまたは OnStartup オーバーライドで Show を実行します。myApp.Startup += (...) => new MainWindow().Show();

手動スタートアップ コードの例は、MSDN のApplication.Run()およびApplication.Run(Window)エントリの下に示されています。Run() オーバーロードでは、 Application.Run が必要な理由と、ディスパッチャ ループの開始などの機能についても説明しています。

于 2009-12-22T18:43:12.337 に答える
0

C# がどのようにスタートアップを実行したいか、いつも私を悩ませていました。だから今、私は自分の主な方法を作ろうとしています。動いていない:

C# はスタートアップを行いません。それを行うコードが挿入されます。コードはいつでも変更できるので、必要に応じて変更できます。私があなただったら最初にすること - プロジェクト ファイルを右クリックし、[プロパティ] を選択します。アプリケーション (上部のタブ) の下 - スタートアップ オブジェクトを参照してください。

フォームを選択できます

また、ウィンドウを表示する場合は、次の行がありません。

window.Show();
于 2009-12-22T18:23:28.460 に答える