1. 程式人生 > >Winform/C#入門程式設計之第二部分常用控制元件(三:組合框控制元件ComboBox)

Winform/C#入門程式設計之第二部分常用控制元件(三:組合框控制元件ComboBox)

簡介:

        介紹組合框控制元件ComboBox。

 

介紹:

1.屬性

常用屬性
Name 獲取或設定控制元件的名稱。
Text

獲取或設定與此控制元件顯示的文字。在此控制元件中一般不適用。

Items

獲取一個物件,該物件表示該 ComboBox 中所包含項的集合。在屬性直接新增列表項。

DropDownStyle

 

獲取或設定指定組合框樣式的值
Simple 指定列表始終可見,並指定文字部分可編輯。 這表示使用者可以輸入新的值,而不僅限於選擇列表中現有的值。
DropDown 通過單擊下箭頭指定顯示列表,並指定文字部分可編輯。 這表示使用者可以輸入新的值,而不僅限於選擇列表中現有的值。 使用此設定時, AutoCompleteModeAppend 值的作用與 SuggestAppend 值相同。 這是預設樣式。
DropDownList 通過單擊下箭頭指定顯示列表,並指定文字部分不可編輯。 這表示使用者不能輸入新的值。 只能選擇列表中已有的值。

AutoCompleteMode 和 AutoCompleteSource

屬性必須一起使用。

在 AutoCompleteMode 設定為 SuggestAppend,且 AutoCompleteSource 設定為 ListItems 的情況下,行為如下:

  • 如果字串列表為空,則按 Backspace 或 Delete 鍵將不做任何操作。

  • 如果按 Backspace 鍵的時間小於一秒,則選中前一項;如果字串列表為空,則不選中任何內容。

  • 如果按 Backspace 鍵的時間超過一秒,則選中第一項。

  • 如果按 Delete 鍵,則選中第一項。

 

Sorted

獲取或設定指示是否對組合框中的項進行了排序的值。

SelectedText

       可以使用 SelectedText 屬性來檢索或更改 ComboBox 控制元件中的當前選定文字。 但應注意,所選內容會因使用者互動而自動更改。 例如,如果在按鈕 Click 事件處理程式中檢索 SelectedText 值,則此值將為空字串。 這是因為,當輸入焦點從組合框移動到按鈕時,會自動清除所選內容。

       當組合框失去焦點時,選擇點將移動到文字的開頭,並且會取消選定任何選定文字。 在這種情況下,獲取 SelectedText 屬性會檢索空字串,設定 SelectedText 屬性會將指定值新增到文字開頭。

當組合框獲得焦點時,將自動選定控制元件中的全部文字。 如果呼叫控制元件的 Focus 方法來設定輸入焦點,則會選定全部文字,而不管控制元件是否已具有焦點。

        當用戶從下拉列表中選擇項,或通過使用上箭頭和下箭頭選擇項時,將自動選定新項的文字。 但是,如果嘗試獲取 SelectedIndexChangedSelectedValueChanged 事件處理程式中的 SelectedText 值,則此屬性會返回空字串。 這是因為,在這些事件發生時,已清除了以前的 SelectedText 值,並且尚未設定新值。 若要檢索 SelectedIndexChangedSelectedValueChanged 事件處理程式中的當前值,請改用 SelectedItem 屬性。

SelectedIndex

獲取或設定指定當前選定項的索引。

SelectedItem

獲取或設定 ComboBox 中當前選定的項。

Items

獲取一個物件,該物件表示該 ComboBox 中所包含項的集合。

 

2.事件

常用事件
SelectedIndexChanged

SelectedIndex 屬性更改後發生。

 

3.使用

  1. 一般更改屬性Name,選擇DropDownStyle為DropDownList,使用事件SelectedIndexChanged。
  2. 其它屬性引數預設。DropDownStyle為DropDownList時,可禁止使用時更改。
  3. 此控制元件屬性Text,不需要更改。
  4. 屬性Sorted,為false時,不排序。
  5. 不使用SelectText獲取當前選中文字。一般通過屬性SelectedItem或者Text。

如下圖:

 

 

4.原理

  1. SelectedIndexChanged事件和comboBox1_SelectedIndexChanged繫結。選擇不同項時,會觸發。
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);

 

5.演示

  1. 通過此控制元件的檢視屬性Items,新增選項或在窗體的Load事件中即程式碼裡新增選項。
  2. 獲取或設定索引。
  3. 獲取選擇的文字。
        private void Form1_Load(object sender, EventArgs e)
        {
            //新增項
            comboBox1.Items.Add("9600");
            comboBox1.Items.Add("115200");
            //選擇第幾個
            comboBox1.SelectedIndex = 0;
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //獲取索引
            int index = comboBox1.SelectedIndex;

            //獲取選定文字
            //第一種
            string item1 = comboBox1.SelectedItem.ToString();

            //第二種
            string item2 = comboBox1.Text;

            //第三種,DropDownStyle != DropDownList
            comboBox1.Focus();
            string str = comboBox1.SelectedText;
        }

 如下圖:

  • 手動新增選項