ComboBox也算是常用的控件之一了,它提供了一个下拉框供可以让我们自己选择内容,这里我们通过自定义下拉框的形式来学习ComboBox的使用
1 界面布局
界面布局如下
布局界面很简单,三个label和三个ComboBox即可,另外由于第三个需要一张图片,所以我们这里还需要添加一个ImageList
2 用法示例
如果我们想自定义下来菜单的形式,需要在DrawItem事件中进行重绘,为了能够在DrawItem事件中进行重绘,还需要设置DrawMode属性,该属性定义如下
Normal | 0 | 控件中的所有元素都由操作系统绘制,并且元素大小都相等。 |
OwnerDrawFixed | 1 | 控件中的所有元素都是手动绘制的,并且元素大小都相等。 |
OwnerDrawVariable | 2 | 控件中的所有元素都由手动绘制,元素大小可能不相等。 |
2.1数据绑定
再重绘之前,首先我们需要知道数据如何添加到ComboBox里面的,这里大家可以参考
这里我分别使用了三种方法,对三个ComboBox的数据进行绑定,代码如下
private void BindCombox1()
{
//第一种方法
//IList<string> list = new List<string>();
//list.Add("111111");
//list.Add("222222");
//list.Add("333333");
//list.Add("444444");
//comboBox1.DataSource = list;
//第二种方法
IList<Info> infoList = new List<Info>();
Info info1 = new Info() { Id = "1", Name = "张三" };
Info info2 = new Info() { Id = "2", Name = "李四" };
Info info3 = new Info() { Id = "3", Name = "王五" };
infoList.Add(info1);
infoList.Add(info2);
infoList.Add(info3);
comboBox1.DataSource = infoList;
comboBox1.ValueMember = "Id";
comboBox1.DisplayMember = "Name";
}
private void BindCombox2()
{
Dictionary<int, string> kvDictonary = new Dictionary<int, string>();
kvDictonary.Add(1, "篮球");
kvD