私は現在、aToolStrip
と Panel を含むメイン フォームがある Winforms ソリューションに取り組んでいます。このソリューションは、管理ツールとして意図されています。パネルには、通常、入力フォームまたはListView
何らかの種類のユーザー コントロールが含まれています。クリックされたボタンに応じて、パネル内のユーザー コントロールが別のユーザー コントロールに置き換えられます。
ここまでは順調ですね。ここで注意が必要なのは、ユーザーが 1 つまたは複数の部門の管理者になることができることです。ユーザーが複数の部門の管理者である場合、ユーザー コントロールの一部にはComboBox
、管理者が管理する部門を選択できる場所が表示されます。ただし、一部のユーザー コントロールは部門から独立しているため、ComboBox
.
ここで、部門固有のユーザー コントロールに追加する代わりにComboBox
、メイン フォームに追加し、ユーザー コントロールをインスタンス化するときに、どの部門が選択されているかを確認し、それに応じてデータを入力することを考えています。しかし、私の問題は次のとおりです。ユーザーが別の部門を選択しているときComboBox
に、値が変更されたことを子 (ユーザー コントロール) に通知する必要があります。
私が最初に考えたのは、インスタンス化されたときにユーザーコントロールを変更イベントに登録することでした。しかし、私はどうやって仕事をするのか理解できないようです(逆に行く方が簡単です)。私が考えているもう 1 つの方法は、値が変更されるたびにメイン フォームからユーザー コントロールのメソッドを呼び出すことです。ただし、すべてのユーザー コントロールがこの機能を必要とするわけではないため、そのようなメソッドが存在するという保証はありません。
これに対する優先/ゴールデンソリューションはありますか? 私が欠けているもの、またはこれは単なる悪い習慣/設計ですか?
前もって感謝します!