comboBox輸入自動提示(仿ie地址欄)C#

來源:互聯網
上載者:User

 

最近在做項目的時候,需要使用comboBox實作類別似ie下拉式清單一樣的功能!最直接的思路是監聽comboBox的textChanged事件,當事件發生時,從資料(我是用arrayList暫存資料的)中匹配出符合的字串,然後添加到comboBox的下拉式清單中。
1:如何在textChanged顯示下拉式清單,因為顯示下拉式清單一般是使用者點擊下拉的箭頭顯示的,後來使用 comboBox1.DroppedDown = true; 可以顯示下拉式清單的內容。
2:向下拉式清單新增內容: comboBox1.Items.Add(str); 使用此語句可以添加str到下拉式清單中
3:刪除下拉式清單的內容?因為當comboBox的text改變時,原來匹配的下來列表中的內容可能不再匹配,這樣我的思路是每次text改變時將下拉式清單內容全部刪除,然後再重新遍曆集合,將匹配的內容重新添加到下拉式清單裡: comboBox1.Items.Clear(); 可是這個語句會出現一個問題,就是text中的游標會自動跑到最左端:這樣,這條思路沒有繼續下去,而且發現這樣實現有時候滑鼠會丟失游標,感覺很不好!
4:後來查到comboBox和textBox支援內建的搜尋提示功能,在form的InitializeComponent()中添加如下語句:
this.comboBox1.AutoCompleteCustomSource.AddRange(new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" });
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
其中this.comboBox1.AutoCompleteCustomSource.AddRange(new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" });是將資料添加到搜尋範圍
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
是設定comboBox完成內建的搜尋,預設是None,還有Append,和SuggestAppend屬性,除了預設的None都可以實現搜尋提示的功能,只是外觀有所不同而已
this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;制定搜尋範圍,由於在此我是選用new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" }作為自己的搜尋範圍,所以定義為CustomSource
System.Windows.Forms.AutoCompleteSource還有個Allurl屬性,如果將代碼改為
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.Allurl;
這樣該comboBox可以實現同ie下拉式清單一樣的功能,其他的屬性如AllSystemSources可以自己嘗試,這樣就完成了comboBox的搜尋提示功能。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.