1

私は、5 つのカスケード コンボ ボックスのセットである WinForms ユーザー コントロールを作成しました。新しく有効になったコンボにオプションが 1 つしかない場合は、自動的にそれを選択し、その下のオプションをアクティブにします。その結果、単一のユーザー アクションが、いくつかの追加のコンボに波及する可能性があります。

各コンボ ボックスに固有のイベントを発生させます。また、何かが変更されるたびに最終イベントを発生させたいと考えています。たとえば、ユーザーは一番上のコンボからオプションを選択します。これにより、Combo1Changed イベントが発生します。これにより、2 番目のコンボで自動的に選択が行われる場合は、Combo2Changed イベントも発生させます。すべてが完了したら、単一の SomethingChanged イベントを発生させたいと思います。

現在、コンボが変更されるたびに、ComboXChanged イベントと SomethingChanged イベントを発生させています。ただし、1 つの選択で 5 つのコンボすべてをカスケード ダウンできるため、数十のイベントが発生する可能性があります。

イベントを一度だけ起動できるように、カスケードがいつ終了したかを判断する方法がわかりません。この種のものをコーディングするための巧妙なトリックやパターンはありますか?

4

1 に答える 1

0

これを解決するには、すべてのコンボ ボックスが選択変更イベントを渡すクラスを作成し、他のイベントをカプセル化する単一の somethingchanged イベントを発生させます。

そうは言っても、そのUIを再設計することを検討します。これらの 4 つまたはすべてのドロップダウン リストをツリー ビューに置き換えることを検討したことはありますか? これにより、ユーザーがナビゲートするのがはるかに簡単になります。

于 2010-07-31T01:06:13.017 に答える