2013-04-08 11 views
5

私は、コンボボックスを持っているという点でWindowsフォームを作成しています。これには、SQLサーバー2010から「請求書番号」がロードされています。 ユーザータイプとして請求書番号を表示したいコンボボックスに入れます。 たとえば、ユーザが '100'を入力すると、ドロップダウンに '100'で始まる請求書番号が表示されます。Google検索のようなコンボボックスを検索

+0

が重複する可能性: チェックこの http://stackoverflow.com/questions/11780558/c-sharp-winforms-combobox-dynamic-autocomplete –

答えて

8
DataTable temp; 
    DataTable bank; 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; 

     temp = DbRdRw.SqlDbRead("Select * from BankMaster", "BankMaster"); 

     DataView dtview = new DataView(temp); 
     dtview.Sort = "BankName DESC"; 
     bank = dtview.ToTable(); 

     comboBox1.DataSource = bank; 
     comboBox1.ValueMember = "BankName"; 
     comboBox1.DisplayMember = "BankName"; 
    } 
+1

私はこのコードを試してみましたが、それは成功しました... 私の質問に答えてくれたすべての人に感謝します... – Sam

1

がAutoCompleteModeを試してみてください...、事前に 感謝を助けてください - どちらかあなたが探している正確な動作に応じて、提案やSuggestAppend。また、オートコンプリートがオートコンプリートの元になるリストのAutoCompleteSourceを設定することを忘れないでください(私はListItemsを提案します)。

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.autocompletemode.aspx

1

あなたはここで行うに必要なものです:

  • がイベントに、ユーザーがタイプテキストボックスへの文字のすべての時間を取得します。

    SELECT InvoiceNumber from Invoices WHERE InvoiceNumber LIKE '100%'

  • ディスプレイ:
  • は(あなたの例では「100」)ボックスの内容を読み、例えば、データベースへのオフクエリを発射するために、このイベントで実行されます機能を持っていますユーザーが選択するためのコンボボックスで結果を照合します。

+0

代わりに '%'の '*' MSSQLではないでしょうか? – EaterOfCode

+1

私はSQL Server 2010で成功した場合、「%」を使用しました。少なくとも – snappieT

+0

です。私の誤りは – EaterOfCode

3

その後、 セットコンボボックスのプロパティのロード上のデータベースからのアイテムを使用してコンボボックスを入力します。

AutoCompleteModeを:リストアイテム

メイク:追加

AutoCompleteSourceを提案しますドロップダウンにドロップダウンスタイルを設定して、ユーザーが入力できるようにしてください。 コンボボックスに入力されたテキストが受け入れられる前にリストに存在するかどうかを確認するだけです。

願っています。

+0

wow thanks !!!私はこれを知らない。 – AKS