2011-11-02 3 views
10
// [in designer] textBoxInContext.AutoCompleteMode = Suggest 
// [in designer] textBoxInContext.AutoCompleteSource = CustomSource 
AutoCompleteStringCollection autoComplete = new AutoCompleteStringCollection(); 
autoComplete.AddRange(myArrayofStrings); 
textBoxInContext.AutoCompleteCustomSource = autoComplete; 

このコードはMSDNに記載されているとおりに動作します。

問題:ユーザーが "PS"と入力すると、 "PS"で始まるすべての文字列が表示されます。 "PS"を含むすべての文字列を表示したいwinformでオートコンプリートを使用するTextBox

すべてのポインタは?

+1

これは、達成するのはかなり簡単な作業ですが、変更する行を特定するために、より多くのコードを参照する必要があります。 "var results = autoComplete.Where(x => x.StartsWith(" PS ");)は' var results = autoComplete.Where(x => x.Contains( "PS"); ' – JConstantine

+0

になります@JLevett:そうですすべてのコード。私は、MSが提供する自動完全機能を使用しようとしています。[http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.autocompletemode%28v=vs.90%29 .aspx] – karephul

+1

[http://stackoverflow.com/questions/1524166/autocomplete-textbox-with-features-of-like-clause-example-hello-c-sharp-window]から、 – jCoder

答えて

0

愚かだが楽しい提案:AutoCompleteStringCollectionを継承し、これを偽装することができるかどうかを確認するためにデバッグでそれを再生するクラスを作る。

通常の提案:リストボックスであなた自身のオートコンプリートを作成します。

-2

私は同じ問題を抱えており、WPF Autocomplete Textbox ControlがCodeProjectで見つかったものです。かなりうまく機能します。 WPFで書かれていますが、ニーズに合わせて変更することができます。

+0

答えは、問題の解決策を提供していない、それはユーザーの問題と同じです。 –

+0

これはかなり古いです...私が覚えているように私は過ごしました私はちょうどWinFormプロジェクトで実際に働いていた提供されたリンクを確認するのにかなりの時間がかかりました。私はちょうど巨大なコードを貼り付けるのではなく、ここにe。 – kennyzx

+0

結局のところ、これは基本的に文字列操作です...どちらもWinForm/WPFTextBoxのTextプロパティを設定しています。 – kennyzx

1

あなたが別の方法を見つけていない場合、私は手動でそれをやってお勧め:

  1. なしのアイテム(後で手動でそれらを記入します)とのコンボボックスを使用してください。
  2. 考えられる提案がある文字列配列があります。 combobox.TextChangedまたはKeyUpイベントで
  3. は、そのテキストを取り、あなたの文字列配列にしたい方の道をそれを比較すると、combobox.Itemsをクリアした後、combobox.Itemsに得られた結果を追加し、あなたが持っている場合はtrueにDroppedDownプロパティを設定してください提案を見つけた
関連する問題