2017-10-05 9 views
0

文字列値を選択し、新しい値の入力を受け入れるComboBoxを持つC#.NET Windowsフォームアプリケーションがあるとします。いずれかの方法ComboBox値の変更と追加のためにイベントが発生する

  • コンボボックスの既存の値が選択されている、または
  • 新たに入力された値が入力されたときに/に入力されたイベント処理をトリガするための最も効率的な方法は何

    コンボボックス?

SelectedIndexChangedイベントのようなオプションを試しましたが、新しく入力された値があるときにトリガーするように見えません。私はこれがかなり単純なものだと思うだろうが、わからない。

私はEnterキーを捕まえることができましたが、これは更新を意味するものと半分壊れていると思われます。

答えて

0

選択したアイテムの変更にはComboBox_SelectedIndexChangedを使用します。

また、ComboBox_Leaveイベントをトラップして、アイテムが新しいかどうかをチェックします(リストには存在しません)。これは、コンボボックスからフォーカスを切り替えるEnter、Tabキー、およびマウスクリックに対応します。

「フィルタリング可能なDataGridViews」もチェックしてください。ウェブ上にはいくつかのmsdnとcodeprojectの記事があります。

0

あなたの完全な要件が分からずに、コンボボックスが適切なコントロールであるかどうか質問します。私の最初の観察は、ユーザーが新しいコンボボックスの項目をオンザフライで入力できるようにすることは、Pandora's Boxの可能なオープニングです。私は、起こりそうな他のユーザー間の簡単なスペルミスの中からアイテムの重複を簡単に見ることができます。これは将来の頭痛になるでしょう。

@Jeremy Thompsonが示唆しているように、コンボボックスの配線を「離れる」イベントが役に立ちます。ComboBox.Textプロパティを使用してユーザーが入力した新しいテキストを取得し、それが既に存在し、それをコンボボックスのアイテムリストに追加するだけです。これはうまくいくはずですが、私はあなたの目標を達成するためのより良い方法があるかもしれないと推測しています。コンボボックスに何を入力するのですか?

+0

ここでのコンテキストは、コンボボックスが近くのUIコンポーネントの内容をフィルタリングするフィルタ文字列を選択して格納することです。新しいフィルタを入力したり、以前に使用したフィルタ値を選択したりする必要があります。 – ThoralfSkolem

関連する問題