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

來源:互聯網
上載者:User

1.

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;    //顯示的文字

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

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/fcsh820/archive/2009/02/07/3867053.aspx

 

 

2.

Technorati Tags: winform C#

在網頁中 ,使用起來很方便,但今天在使用C#的時候 ComboBox 居然只能用 value 顯示文本,不支援 key 了,往列表中增加大量資料的時候還了得?

沒辦法,只能自己動手了,研究了一下 ComboBox ,Add 增加的是 Object ,看來有戲,過程不寫了,只放結果,一看就明白:

自訂 ListItem

view plaincopy to clipboardprint?

  1. public class ListItem 
  2. public string Key { get; set; } 
  3. public string Value { get; set; } 
  4. public ListItem(string pKey, string pValue) 
  5.     { 
  6. this.Key = pKey; 
  7. this.Value = pValue; 
  8.     } 
  9. public override string ToString() 
  10.     { 
  11. return this.Key; 
  12.     } 

寫入資料的時候:

view plaincopy to clipboardprint?

  1. ListItem li = new ListItem("名稱", "內容"); 
  2. this.combobox1.Items.Add(li); 
  3. // 在此可以增加N個
  4. this.combobox1.Items.Add(li); 
  5. this.combobox1.DisplayMember = "Key";// 對應 ListItem 的 Key
  6. this.combobox1.ValueMember = "Value";// 對應 ListItem 的 Value

讀取資料的時候:

  1. ListItem li = (ListItem)comboBox1.SelectedItem; 
  2. MessageBox.Show(li.Key + li.Value); 

原文連結:http://mdeve.com/blog/post/204

ComboBox

 

Technorati Tags: winform C#

在網頁中 ,使用起來很方便,但今天在使用C#的時候 ComboBox 居然只能用 value 顯示文本,不支援 key 了,往列表中增加大量資料的時候還了得?

沒辦法,只能自己動手了,研究了一下 ComboBox ,Add 增加的是 Object ,看來有戲,過程不寫了,只放結果,一看就明白:

自訂 ListItem

view plaincopy to clipboardprint?

  1. public class ListItem 
  2. public string Key { get; set; } 
  3. public string Value { get; set; } 
  4. public ListItem(string pKey, string pValue) 
  5.     { 
  6. this.Key = pKey; 
  7. this.Value = pValue; 
  8.     } 
  9. public override string ToString() 
  10.     { 
  11. return this.Key; 
  12.     } 

寫入資料的時候:

view plaincopy to clipboardprint?

  1. ListItem li = new ListItem("名稱", "內容"); 
  2. this.combobox1.Items.Add(li); 
  3. // 在此可以增加N個
  4. this.combobox1.Items.Add(li); 
  5. this.combobox1.DisplayMember = "Key";// 對應 ListItem 的 Key
  6. this.combobox1.ValueMember = "Value";// 對應 ListItem 的 Value

讀取資料的時候:

  1. ListItem li = (ListItem)comboBox1.SelectedItem; 
  2. MessageBox.Show(li.Key + li.Value); 

原文連結:http://mdeve.com/blog/post/204

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.