0

私は現在、aToolStripと Panel を含むメイン フォームがある Winforms ソリューションに取り組んでいます。このソリューションは、管理ツールとして意図されています。パネルには、通常、入力フォームまたはListView何らかの種類のユーザー コントロールが含まれています。クリックされたボタンに応じて、パネル内のユーザー コントロールが別のユーザー コントロールに置き換えられます。

ここまでは順調ですね。ここで注意が必要なのは、ユーザーが 1 つまたは複数の部門の管理者になることができることです。ユーザーが複数の部門の管理者である場合、ユーザー コントロールの一部にはComboBox、管理者が管理する部門を選択できる場所が表示されます。ただし、一部のユーザー コントロールは部門から独立しているため、ComboBox.

ここで、部門固有のユーザー コントロールに追加する代わりにComboBox、メイン フォームに追加し、ユーザー コントロールをインスタンス化するときに、どの部門が選択されているかを確認し、それに応じてデータを入力することを考えています。しかし、私の問題は次のとおりです。ユーザーが別の部門を選択しているときComboBoxに、値が変更されたことを子 (ユーザー コントロール) に通知する必要があります。

私が最初に考えたのは、インスタンス化されたときにユーザーコントロールを変更イベントに登録することでした。しかし、私はどうやって仕事をするのか理解できないようです(逆に行く方が簡単です)。私が考えているもう 1 つの方法は、値が変更されるたびにメイン フォームからユーザー コントロールのメソッドを呼び出すことです。ただし、すべてのユーザー コントロールがこの機能を必要とするわけではないため、そのようなメソッドが存在するという保証はありません。

これに対する優先/ゴールデンソリューションはありますか? 私が欠けているもの、またはこれは単なる悪い習慣/設計ですか?

前もって感謝します!

4

2 に答える 2