問題タブ [combobox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
9 に答える
26464 参照

.net - ComboBox の AutoComplete 機能を使用して、値をリスト内の値に制限しますか?

WinForms 2.0 では、ComboBox にオートコンプリート機能があり、入力したテキストで始まる値のみを含むカスタム ドロップダウン リストを表示します。

ただし、有効な値を ComboBox の項目リストに表示されるものだけに制限したい場合は、DropDownStyleto を設定してDropDownList、ユーザーが値を入力できないようにします。

ただし、ユーザー入力が必要なオートコンプリート機能を使用できなくなりました。

オートコンプリート機能の使用を許可しながら、リストへの入力を制限する別の方法はありますか? これに対するいくつかのカスタム ソリューションを見たことがあることに注意してください。ただし、一致するオートコンプリート アイテムがドロップダウン リストに表示され、元のリストがそうでない場合でも並べ替えられる方法が本当に気に入っています。

編集:入力された値を検証すること、つまり、ユーザー入力がイベントで有効かどうかTextChanged、またはイベントを使用しているかどうかをテストすることを考えValidatingました。問題は、期待される動作は何ですか? それらの値をクリアしますか (空の値も無効です)、またはデフォルト値を使用しますか? 最も近い一致値?

Ps この質問に追加できる他のタグはありますか?

0 投票する
3 に答える
15010 参照

c# - 各 DataGridViewComboBoxCell に異なるデータを設定する方法は?

実行時に追加する 2 つの DataGridViewComboBoxColumn があります。最初の DataGridViewComboBoxColumn の項目は、グリッドビューのすべての行で同じままにする必要がありますが、2 番目の DataGridViewComboBoxColumn の項目は、選択した行によって行ごとに異なります。最初の DataGridViewComboBoxColumn の項目

最初の DataGridViewComboBoxColumn が場所を表し、2 番目の DataGridViewComboBoxColumn がサブロケーションを表すとします。だから私は 2 番目の DataGridViewComboBoxColumn 項目を最初の DataGridViewComboBoxColumn から選択した場所のサブロケーションにしたい

0 投票する
27 に答える
704840 参照

c# - C# を使用して、自分の文字列に一致するようにコンボ ボックスで選択した項目を設定するにはどうすればよいですか?

文字列「test1」があり、comboBox にはtest1test2、およびが含まれていますtest3。選択した項目を「test1」に設定するにはどうすればよいですか? つまり、文字列をコンボボックス項目の 1 つに一致させるにはどうすればよいでしょうか?

下の行を考えていましたが、これはうまくいきません。

0 投票する
3 に答える
1878 参照

c# - デザイナーフレンドリーなプリバウンドデータソースを使用して派生ComboBoxを作成するにはどうすればよいですか?

データベースから取得したオブジェクトのリストにバインドされたSystem.Windows.Forms.ComboBoxから派生コントロールを作成したいと思います。他の開発者は、必要がない限り、データソースやバインディングについて心配することなく、このコントロールをフォームにドロップすることができます。

コンボボックスを拡張してから、コンストラクターでDataSource、DisplayMember、およびValueMemberを設定しようとしました。

実行すると機能しますが、フォームに追加するとVisualStudioで多くのエラーが発生します。私が得るエラーは次のとおりです。

「プロパティ'Items'のコード生成に失敗しました。エラーは次のとおりです:'オブジェクト参照がオブジェクトのインスタンスに設定されていません」

これを実現する正しい方法は何ですか(C#、Winforms、.NET 2.0以降)?

0 投票する
1 に答える
1844 参照

silverlight - この単純なデータバインディングのシナリオが機能しないのはなぜですか? (コンボボックス関連)

私はしばらくこれについて頭を悩ませてきましたが、現時点では困惑しています.

問題のシナリオはコードとして説明する方が簡単なので、うまくいけばそれ自体が物語っています。まず、XAML に次のような Silverlight アプリケーションがあります...

私のコードビハインドは次のようになります...(すべて単一のクラスファイルに記述されているため、独自のプロジェクトに簡単にコピーしてコンパイルできます)

説明させてください...たとえば、コレクションを ComboBox にバインドするときに、ComboBox のSelectedItemプロパティをそれにバインドできるように、 SelectedItemプロパティを持つ ObservableCollection を作成する一般的な方法を書き始めました。

ただし、何らかの理由で、ComboBox が ItemTemplate を介して効果的にネストされている場合は機能しないようです。私は効果的にリストのリストを持っています。これは、何が問題なのかわからなくなるほど単純なシナリオです。

コードを実行すると、テンプレート化された ComboBox が正しいアイテムを取得することがわかりますが、バインディングにもかかわらず SelectedItem に設定されることはありません。

私はそれがかなり長く続いていることを知っていますが、... 何かアイデアはありますか?

どうもありがとう

0 投票する
1 に答える
2149 参照

c# - WinForms ComboBox で DisplayMember を変更できません

次のコードを使用して、コンボボックスの表示方法を変更しようとしています:

GeographicAddress は、文字列を返す ShortCode プロパティを持つクラスです。

ただし、アプリケーションを使用する場合、表示される値は依然として GeographicAddress.ToString() から取得されます。デバッグでは、cboFind.DisplayMember = "ShortCode" は効果がないようです! DisplayMember は、その行を実行する前後に "" です!

私は何が欠けていますか?

0 投票する
2 に答える
1078 参照

vb.net - 最近入力した値を記憶し、オートコンプリートできる ComboBox

VB.NET でデスクトップ検索エンジンを開発しています。ComboBox を使用して検索クエリ (文字列) を指定しています。ComboBox に最近のクエリを記憶させて表示させたい。また、ユーザーが入力しているときに ComboBox がクエリをオートコンプリートしようとすることも必要です。

これを実装する最良の方法は何ですか?

0 投票する
5 に答える
13315 参照

wcf - オブジェクトのリストを使用したSilverlightコンボボックスのデータバインディング-機能しているが醜い

UIにSilverlightを使用し、バックエンドにWCF Webサービスを使用して、ビジネスアプリケーションを開発しています。データベースには、いくつかのルックアップテーブルがあります。WCFサービスがビジネスオブジェクトを返す場合、プロパティの1つに、外部キーだけでなくルックアップテーブルの行全体が含まれるため、UIで、ルックアップテーブルの説明などを別の呼び出しを行わずに表示できます。サービス。現在私がやろうとしているのは、ルックアップ値のリスト全体にバインドされたコンボボックスを提供し、それを適切に更新することです。この例で扱っているビジネスオブジェクトはSessionと呼ばれ、ルックアップはSessionTypeと呼ばれます。

以下は、コンボボックスの定義です。DataContextはSessionのインスタンスに設定されます。コンボボックスには文字列のリスト以上のものが表示されているため、ItemTemplateを設定しています。

ビジネスオブジェクトとルックアップテーブルの両方が、Webサービスを介して非同期にロードされています。他に何もしなければ、コンボボックスリストにはSessionTypesが入力されますが、Sessionからの初期SessionType値は表示されません。ただし、コンボボックスの選択が変更された場合、Sessionは正しいSessionTypeで更新されます。

起こっているように見えるのは、SelectedItemバインディングがSessionのSessionTypeをSessionTypeリストの同等のものと一致させることができないということです。オブジェクトの値は同じですが、参照は異なります。

私が見つけた回避策は、SessionとSessionTypesリストをロードしてから、Sessionの現在のSessionTypeをSesstionTypesリストの対応するもので更新することです。そうすると、コンボボックスが正しく表示されます。しかし、私にはこれは悪いコードの臭いがあります。すべてが非同期でロードされるため、すべてがいつ使用可能になるかを判断する必要があります。これが私がそれをしている方法です:

私のSilverlightユーザーコントロールのコードビハインド:

つまり、基本的に、Webサービスからデータを取得するたびにインクリメントされるカウンターがあります。3つのもの(コアビジネスオブジェクト+ 2つのルックアップテーブル)を期待しているので、そのカウンターが3になると、参照を一致させます。

私には、これは非常にハッキーに思えます。コンボボックスでValueMemberPathとSelectedValueを指定して、選択したアイテムをリスト内のアイテムと一致させたいと思います。

誰かがこれを行うためのよりクリーンな方法を見ることができますか?この状況はビジネスアプリでは非常に一般的であるため、それを行うための優れた方法があるはずです。

0 投票する
3 に答える
1912 参照

c# - ComboBoxドロップダウンの終了をキャンセルします

ユーザーにドロップダウンを再度開かせたくないので、ユーザーが特定のアイテムを選択した場合、この操作をキャンセルしたいと思います。これはできますか?

0 投票する
5 に答える
46743 参照

javascript - EXTJSコンボボックスが展開後にvalueFieldで選択されない

かなりうまく機能するコードをいくつか書きましたが、奇妙なバグがあります ここに例があります...


私のコンボボックスのバグビデオを見てください


私が言ったように、これは datachanged が発生するたびにうまく機能します - 正しいインデックスが選択され、displayField が表示されますが、コンボボックスにテキストを入力した後、後で "datachanged" が発生すると、displayField が表示されません。代わりに、起動した setValue メソッドからの値が表示されます。

奇妙なことに、テキストを入力してマウスで選択を変更することがなければ、バグはありません。最後に、これはコンボボックスにテキストを入力したときにのみ表示されます。

誰かこのバグについて聞いたことがありますか、解決策、または賢明なアドバイスがありますか?

コード !

2 つのデータ ストア:


最初にこのようなものを返す人:

後者の場合:


Combobox:

イベントでは、 「CompteurCommunes」datachangedの新しい値を設定します:Combobox