相關(guān)資訊
本類常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶端下載下載量:584212
-
Windows優(yōu)化大師下載量:419725
-
90美女秀(視頻聊天軟件)下載量:366966
-
廣西農(nóng)村信用社手機(jī)銀行客戶端下載下載量:365708
-
快播手機(jī)版下載量:325898
c#(winform)中ComboBox添加Key/Value項、獲取選中項、根據(jù)Key、Value設(shè)置選中項總結(jié)
2013/7/4 9:37:24 出處:本站原創(chuàng) 人氣:4216次 字號:小 中 大
因?yàn)榇蠹胰粘?yīng)用通常是鍵/值對的形式去綁定它的.
參考了一些網(wǎng)上的例子,最終寫了一個輔助類用于方便對ComboBox的操作:
用下面這個類的實(shí)例作為ComboBox的添加項:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace tp7309.Winform
{
public class ListItem
{
public string Key { get; set; }
public string Value { get; set; }
public ListItem(string strKey, string strValue)
{
this.Key = strKey;
this.Value = strValue;
}
public override string ToString()
{
return this.Key;
}
/// <summary>
/// 根據(jù)ListItem中的Value找到特定的ListItem(僅在ComboBox的Item都為ListItem時有效)
/// </summary>
/// <param name="cmb">要查找的ComboBox</param>
/// <param name="strValue">要查找ListItem的Value</param>
/// <returns>返回傳入的ComboBox中符合條件的第一個ListItem,如果沒有找到則返回null.</returns>
public static ListItem FindByValue(ComboBox cmb, string strValue)
{
foreach (ListItem li in cmb.Items)
{
if (li.Value == strValue)
{
return li;
}
}
return null;
}
/// <summary>
/// 根據(jù)ListItem中的Key找到特定的ListItem(僅在ComboBox的Item都為ListItem時有效)
/// </summary>
/// <param name="cmb">要查找的ComboBox</param>
/// <param name="strValue">要查找ListItem的Key</param>
/// <returns>返回傳入的ComboBox中符合條件的第一個ListItem,如果沒有找到則返回null.</returns>
public static ListItem FindByText(ComboBox cmb, string strText)
{
foreach (ListItem li in cmb.Items)
{
if (li.Value == strText)
{
return li;
}
}
return null;
}
}
}
使用前引入命名空間:tp7309.Winform
添加項:
cmb1.Items.Add(new ListItem("key1", "value1"));
cmb1.Items.Add(new ListItem("key2", "value2"));
獲取選中項:
ListItem li = (ListItem)cmb1.SelectedItem;
ListItem li1 = ListItem.FindByValue(cmb1, "value1"); //根據(jù)Key得到選中項
ListItem li2 = ListItem.FindByText(cmb1, "key1"); //根據(jù)Value得到選中項
string strKey = li.Key; //得到選中項Key
string strValue = li.Value; //得到選中項Value
設(shè)置選中項:
cmb1.SelectedIndex = 0; //根據(jù)索引修改選中項
cmb1.SelectedItem = ListItem.FindByValue(cmb1, "value1"); //根據(jù)Key得到選中項
cmb1.SelectedItem = ListItem.FindByText(cmb1, "key1"); //根據(jù)Value得到選中項