天天看點

combox系列問題集

visual studio崩潰

你是不是經常會遇到一編輯combox,visual studio就會立馬崩潰。一直都無法了解是什麼原因,然後後來發現居然是因為有道的截屏翻譯,關掉截屏翻譯就好了。

combox綁定資料源

SqliteDataReader dr;
            if (dr.Read())
            {
                this.comboBox1.Items.Add(dr[]);
            }
           

自動補全的功能

我們希望在combox中實作輸入的時候,有推薦的文本自動補全功能。我們主要隻需要設定AutoCompleteMode和AutoCompleteSource這兩個屬性就可以了。

模糊查詢

上面那個自動補全的功能隻能實作從左到右進行比對,而不能進行模糊比對。假設我們的combobox裡面有“張三“,如果輸入”張“可以進行比對,但是我們如果輸入”三“的話就無法實作比對,而combobox自身并沒有這個屬性,是以我們需要自己寫一個方法來實作。

List<string> listOnit = new List<string>();
        List<string> listNew = new List<string>();

        //用于模糊查詢
        private void BindComboBox()
        {
            string str = "select License from tb_drug";
            SQLiteDataReader sdr = sh.getcom(str);
            while (sdr.Read())
            {
                if (sdr[].ToString() != " " && sdr[].ToString() != null)
                    listOnit.Add(sdr[].ToString());               
            }
            sdr.Close();
            this.comboBox1.Items.AddRange(listOnit.ToArray());
        }

        private void comboBox1_TextUpdate(object sender, EventArgs e)
        {
            this.comboBox1.Items.Clear();
            listNew.Clear();
            foreach (var item in listOnit)
            {
                if (item.Contains(this.comboBox1.Text))
                {
                    listNew.Add(item);
                }
            }
            this.comboBox1.Items.AddRange(listNew.ToArray());
            this.comboBox1.SelectionStart = this.comboBox1.Text.Length;
            Cursor = Cursors.Default;
            this.comboBox1.DroppedDown = true;
        }