c#(winform)中ComboBox和ListBox添加項和設定預選項完全解決

來源:互聯網
上載者:User
WinForm下的ComboBox預設是以多行文本來設定顯示列表的, 這通常不符合大家日常的應用,

因為大家日常應用通常是鍵/值對的形式去綁定它的.

那麼用索引值對的形式如何做?

因為Combox的每一個項的值是一個object, 實際上就是一個鍵/值對.
我用的是下面這個類的執行個體作為它的一個項:

    /// <summary>
    /// ComboBox的項
    /// </summary>
    class ListItem : System.Object
    {
        private string _Value = string.Empty;
        private string _Text = string.Empty;

        /// <summary>
        /// 值
        /// </summary>
        public string Value
        {
            get { return this._Value; }            set { this._Value=value; }
        }
        /// <summary>
        /// 顯示的文本
        /// </summary>
        public string Text
        {
            get { return this._Text; }            set { this._Text=value; }
        }

        public ListItem(string value, string text)
        {
            this._Value = value;
            this._Text = text;
        }
        public override string ToString()
        {
            return this._Text;
        }

    }

 

 通過這個類就可以定義ComboBox的值了, 首先我們定義一個ListItem的清單作為ComboBox的資料來源:

            List<ListItem> items = new List<ListItem>();
            items.Add(new ListItem("0", "Item_0_Text"));
            items.Add(new ListItem("1", "Item_1_Text"));
            items.Add(new ListItem("2", "Item_2_Text"));
            items.Add(new ListItem("3", "Item_3_Text"));
            items.Add(new ListItem("4", "Item_4_Text"));
            items.Add(new ListItem("5", "Item_5_Text"));

 

 然後進行相應的設定:

            //將資料來源的屬性與ComboBox的屬性對應
            drpTest.DisplayMember = "Text";        //顯示
            drpTest.ValueMember = "Value";        //值

 

然後進就可以進行綁定了:

            drpTest.DataSource = items;        //綁定資料

 

綁定資料之後, 就可以對其進行預設選擇項的設定, 取值等操作:

            drpTest.SelectedValue = "4";        //設定選擇項

            //取得當前選擇的項
            ListItem selectedItem = (ListItem)drpTest.SelectedItem;
            string value = selectedItem.Value;    //值
            string text = selectedItem.Text;    //顯示的文字

 

其他動作大家就依樣畫葫蘆吧. 呵呵.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.