私はWinformのコンボボックスを持っていますが、ユーザーがオプションをいつ選択するのかを知る必要があります。問題は、各イベントタイプには欠点があることです。C#Winform - 1つのユーザーアクションで2つのイベントが発生したかどうかを検出します。
クローズドドロップダウンリストでコンボボックスが選択され、キーボードの矢印で上下に移動することで選択が行われた場合、textChangedは発生しません。
ドロップダウンリストが開いているときにSelectionChangeCommittedHandlerが起動しない場合、ユーザーはキーボードの矢印で上下に移動し、コンボボックスのタイトルまたは外側のいずれかをマウスでクリックします。
SlectedIndexChangedHandlerが頻繁に実行されるため、Web接続が弱い場合にプログラムが遅くなります。
だから私は、そのソリューションを実行するために考えた:両方SelectionChangeCommittedHandlerとtextChangedイベントに登録
との両方が発射されていることを例に、そのうちの一つを無視します。問題は、その状況(1つのユーザーアクションから2つのイベント)を検出する方法がわからないことです。
私はそれを検出する方法を知ってうれしく思います。もしあれば、もっと良い解決策を聞くことができます。
"SlectedIndexChangedHandlerが頻繁に実行されるため、Web接続が弱い場合にプログラムが遅くなります。" - ネットワークI/OがUIをブロックする場合、あなたは「間違っている」と思います...実際に達成しようとしているのは何ですか?あなたの目標は何ですか? – Fildor
@Fildor 1つのコンボボックスで値を選択すると、選択した値をパラメータとしてWebサービスを呼び出すことによって、次のコンボボックスにデータを入力します。それを行う良い方法はありますか? – Yehezkel
いくつかの点によって異なります:1.コンボにはいくつのアイテムが含まれていますか? 2.選択がコミットされた後にフェッチするだけで十分ですか? 3.従属コンボにはいくつのアイテムがありますか? ...私が目指しているのは、例えば、第2コンボボックスのすべての可能なアイテムリストを「プリフェッチ」することは意味をなさないでしょうか?そして、あなたは本当にすべての変更にアイテムを取得する必要がありますか? (= 1. *コンボをスクロールするときに、2.コンボで項目が変化するのを見なければならないか?) – Fildor