0

Windows フォーム開発の最初のユーザーとして、簡単な質問をしたいと思います...

そのソリューションの実行時に開くソリューション内にフォーム(MainWindow.cs)を作成しました。

その後、2 つ目のフォーム (SecondWindow.cs) を作成し、最初のウィンドウからボタンをクリックして呼び出せるようにイベントを作成しました。

次に、2 番目のウィンドウを閉じたときに MainWindow.cs を有効にします。

どうやってするか...

私がすでに持っている簡単な解決策は、MainWindow.csを非表示にし、2番目のウィンドウを閉じるときに後者を非表示にして、最初のウィンドウの新しいオブジェクトを作成して表示することです.しかし、.netによって作成されたオブジェクトが既にあるため、これは良い方法ではないと思います最初のウィンドウのフレームワークが自動的に作成されるため、 Mainwindow.cs の新しいオブジェクトを作成する必要があるのはなぜですか。

最初のウィンドウのコード ( MainWindow.cs ) :

private void priceControllToolStripMenuItem_Click(object sender, EventArgs e)
    {
       SecondWindow price = new SecondWindow();
        this.Enabled = false;
        price.Show();
    }

セカンド ウィンドウのコード ( SecondWindow.cs を閉じるとき)

private void price_controll_FormClosed(object sender, FormClosedEventArgs e)
    {
        // what will goes here to make the MainWindow.cs to enable state
    }
4

2 に答える 2

2

price.ShowDialog()2 番目のフォームをモーダル ダイアログとして表示するために使用します。2 番目のフォームを閉じるまで、メイン フォームは無効になります。

private void priceControllToolStripMenuItem_Click(object sender, EventArgs e)
{
    using(SecondWindow price = new SecondWindow())
        price.ShowDialog();
}
于 2013-07-21T18:22:29.197 に答える
0

メインフォームを所有者として2番目のフォームに渡すことができます

private void priceControllToolStripMenuItem_Click(object sender, EventArgs e)
{
    SecondWindow price = new SecondWindow() { Owner = this };
    this.Enabled = false;
    price.Show();
}

その後、2 番目のフォームから参照できます。

private void price_controll_FormClosed(object sender, FormClosedEventArgs e)
{
    Owner.Enabled = true;
}
于 2013-07-21T18:42:19.177 に答える