サブフォームメソッドからメインフォームを変更するメソッドを呼び出す最もクリーンな方法は何でしょうか。メインフォームを他のクラスから呼び出す方法
最初のサブフォームが終了するまで、mainFormを無効にしたままにします。今、私は単純にmainFormオブジェクトをサブフォームに渡し、サブフォームはmainForm.Enabled = trueを実行し、終了したらそれを閉じます。そのようなmainForm全体を渡すのはむしろ面白いのではないでしょうか?それはどのように行われたのですか?あなたは、メインウィンドウのインスタンス(メイン・ウィンドウタイプとしてキャスト)を取得することができます
Application.OpenForms[0]
で
public bool FormEnabled{
get{ return this.Enabled;}
set{ this.Enabled = value;}
}
いいえ、フォームをお互いの内部に掘り下げるべきではありません。 'FooHappened'イベントがフォームを有効にした結果を持つ、MVVMやシンプルイベントなどのデザインパターンを適用します。 – CodeCaster
メインフォームのenabledプロパティをfalseに設定し、サブフォームを閉じるときに、メインフォームのenabledプロパティをtrueに設定します。 –
インターフェースを使用するクリーナーの方法:メインフォームは、このプロパティに対して新しい動作を持つように見えるため、プロパティ 'Enable'を持つインターフェイスと、この新しい動作に必要な他の特定のメソッドを実装する必要があります。そして、メインフォームの代わりにインターフェイスをサブフォームに渡すことができます。 –