none
請問使用 ComboBox 如何做輸入值自動核對選取的功能? RRS feed

  • 問題

  • 各位好:

         

           我現在有一個 ComboBox 選單的值為 value:G1 text:G1_項目1,value:G2 text:G2_項目2

     

    在 ComboBox 中輸入值時,如果符合 value 則自動選取該項

     

    以下是我寫的程式碼

     

    Code Snippet
    private void cmb_TextChanged(object sender, EventArgs e)
    {
       if(cmb.SelectedValue == null)
       {
         DataRow[] drs = ((DataTable)cmb.DataSource).Select("value='" + cmb.Text + "'");
       if(drs.Length > 0)
       {
          cmb.SelectedValue = cmb.Text;
       }
    }

     

     

    在操作時視覺上是正確的 輸入 G1 時 ComboBox 會顯示 G1_項目1

    在 DEBUG 模式下 ComboBox 的值是正確的(在VS監看式中),在跑 TextChage 事件時

    可是我另外按一個按鈕,進入中斷模式發現 ComboBox.SelectedValue 事實上是 null 值並不是 "G1"

     

    是我不應該在該事件中處理嗎?

     

    謝謝

    2008年5月21日 上午 02:30

解答

所有回覆

  • HI,

     

    如果您開發的是Windows應用程式, 使用者的輸入會自動對應到ComboBox控制項的內容, 不需要另外寫程式處理

     

    tihs

    2008年5月21日 上午 05:49
  • tihs 您好:

      

        我是開發 window 應用程式,剛剛試了一下您說的功能,雖然會自動對應可是還是要打開選單才行

    我希望我輸入 "G2" ,ComboBox 就會顯示 "G2_項目2" 所以在事件裡面處理。

     

     

    2008年5月21日 上午 06:10
  • 設定AutoCompleteSource為CustomSource,然後把資料塞到AutoCompleteCustomSource中,並選擇適當的AutoCompleteMode。

    Re: How to use Autocomplete with a ComboBox

    2008年5月22日 下午 02:24
  • 簡單一點就是設定 AutoComplete 為 ListItems,然後設定 AutoCompleteMode 為 Suggest 或 SuggestAppend

    2008年5月23日 下午 05:26