您的位置:首页 > 编程语言 > C#

C# comboBox控件使用之添加读取项用法

2012-10-16 16:21 447 查看
C#中的comboBox控件是主要用下拉列表的形式显示一组数据的一种控件,它支持的值类型包括基本类型和自定义的类型。

1. 在用基本类型的时候,可以直接将值添加进去,然后指定默认显示的项就可以了。

for(i = 0; i < 10; i++)

{

comboBox1.Items.Add("添加项" + i);

}

2. 也可以通过代码进行数据绑定,也就是需要用一个List<T>类来定义一个可以通过索引进行访问的强类型列表,以提供搜索、排序和访问等操作。

(1)只有简单的单一数据的绑定

// 定义需要绑定的数据

private static readonly string[] DataTypeArray = { "风速","温度", "湿度" };

public static List<string> DataType = new List<String>(DataTypeArray);

//绑定到comboBox2上

comboBox2.DataSource = DataType;

到这里就结束了。

(2)有多种不同类型数据的绑定

需要定义一个专用的类,还要提供相应的函数进行访问,再通过List<T>定义强类型列表。

//定义类myTest;

public class myTest

{

public string CarNo { get; private set; }

public int CarProduce { get; private set; }

public string CarCompany { get; private set; }

//定义构造函数

public myTest(string carNo, int carProduce, string carCompany)

{

CarNo = carNo;

CarProduce = carProduce;

CarCompany = carCompany;

}

}

// 定义强类型列表

private List<myTest> _myTestList;

public List<myTest> myTestList

{

get

{

lock(LockThis) //此行可以不要,根据情况判断

{

InitmyTestList();

}

return _myTestList;

}

set

{

_myTestList = value;

}

}

// 定义初始化函数

private void InitmyTestList()

{

string carNo = "京B12345";

int carProduce = 2007;

string carCompany = "北方出租汽车公司";

myTest test1 = new myTest(carNo, carProduce, carCompany);

_myTestList.Add(test1);

}

完成这些工作后,就可以绑定了。

comboBoxCarNo.DataSource = myTestList;

comboBoxCarNo.DisplayMember = "CarNo"; // 指定要显示的项,这里指车牌CarNo

comboBoxCarNo.ValueMember = "CarNo"; // 指定要显示的值,这个可以不加

comboBoxCarProduce.DataSource = myTestList;

comboBoxCarProduce.DisplayMember = "CarProduce"; // 指定要显示的项,这里指生产年份CarProduce

comboBoxCarCompany.DataSource = myTestList;

comboBoxCarCompany.DisplayMember = "CarCompany"; // 指定要显示的项,这里指车辆所属公司CarCompany

3. 在读取的时候可以直接选择comboBox1.SelectedItems,或者comboBox1.SelectedValue,或者comboBox1.Text,然后根据类型转换就可以。对于基本类型可以用Parse函数。

如:int类型对应的Int32.Parse(),即int x = Int32.Parse(comboBox1.Text);

float类型对应的Single.Parse(),即float y = Single.Parse(comboBox1.SelectedValue.ToString.Trim());

对于自定义的类,则需要进行一个转化,如刚才的myTest类,

myTest newTest1 = comboBoxCarNo.SelectedItem as myTest;

string carNo = newTest1.CarNo;

myTest newTest2 = comboBoxCarProduce.SelectedItem as myTest;

int carProduce = newTest2.CarProduce;

myTest newTest3 = comboBoxCarCompany.SelectedItem as myTest;

string carCompany = newTest3.CarCompany;

这样就实现自定义类型的访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: