Previous topicNext topic
Help > 开发指南 > 窗体开发 > 控件参考 > 控件参考 > 列表类控件 >
列表类控件说明

列表类控件基本上都实现了IComboBox接口,所以我们可以通过此接口来做一些通用功能。

属性

名称 中文名称 说明
AllowEditValue 允许编辑 是否允许编辑。
ItemsBindingDictionary 字典项 用字典作为控件的下拉清单。并且只显示Key的值,但是返回的却是Value的值。此属性适合用代码赋值。
ComboList 列表项 字符型,用于设置自定义列表项目,项目之间用符号“|”隔开。如果以“|”开头,则表示可以允许用户手动输入值。

在属性窗口中,我们可以直接在弹出窗口中编辑修改列表。每个项用回车分隔开。到属性中时会以“|”代替换行符。

下面我们演示一下如何用代码给这些加载赋值清单。

Vb.Net
Dim db As Database=Proj.SysDataFactory("UserDB")
'动态创建一个下拉清单控件
Dim cmb As New SmComboBox()

'第一种方法,通过ItemsBindingDictionary来赋值
Dim strSQL As String="Select DicKeys,DicValues From  SystemDictionary where ParentId=(Select DicID From  SystemDictionary Where DicValues='政治面貌' and IsGroupName=1)"
Dim dic As Dictionary(Of String,String)=db.GetDicOfColumnValue(strSQL)
'以一个字典设置控件的清单
cmb.ItemsBindingDictionary=dic

'第二种方法,通过ComboList来赋值
cmb.ComboList=db.GetComboListOfColumnValue("select DicValues From  SystemDictionary where ParentId=(Select DicID From  SystemDictionary Where DicValues='政治面貌' and IsGroupName=1)")

'第三种方法,直接字符串赋值
cmb.ComboList="男|女"

C#
Database db = Proj.SysDataFactory["UserDB"];
// 动态创建一个下拉清单控件
SmComboBox cmb = new SmComboBox();

// 第一种方法,通过ItemsBindingDictionary来赋值
string strSQL = "Select DicKeys,DicValues From  SystemDictionary where ParentId=(Select DicID From  SystemDictionary Where DicValues='政治面貌' and IsGroupName=1)";
Dictionary<string, string> dic = db.GetDicOfColumnValue(strSQL);
// 以一个字典设置控件的清单
cmb.ItemsBindingDictionary = dic;

// 第二种方法,通过ComboList来赋值
cmb.ComboList = db.GetComboListOfColumnValue("select DicValues From  SystemDictionary where ParentId=(Select DicID From  SystemDictionary Where DicValues='政治面貌' and IsGroupName=1)");

// 第三种方法,直接字符串赋值
cmb.ComboList = "男|女";

虽然IComboBox接口里面没有Items属性,但是实现了IComboBox接口的这些类中,也基本上都有一个Items属性。使用方法也基本一致。

Vb.Net
'动态创建一个下拉清单控件
Dim cmb As New SmComboBox()
Dim arrCols() As String={"ColA","ColB","ColC","ColD"}
'清空当前所有清单
cmb.Items.Clear()
'添加方法一:
cmb.Items.AddRange(arrCols)
'移除某一个项
cmb.Items.Remove("ColA")
'移除某个位置上的项
cmb.Items.RemoveAt(0)
'在第二行插入"ColE"
cmb.Items.Insert(1,"ColE")
'在最后添加一条记录
cmb.Items.Add("ColF")

cmb.Items.Clear()
'我们还可以循环遍历添加
For Each Item As String In arrCols
    cmb.Items.Add(Item)
Next

C#
// 动态创建一个下拉清单控件
SmComboBox cmb = new SmComboBox();
string[] arrCols = new[] { "ColA", "ColB", "ColC", "ColD" };
// 清空当前所有清单
cmb.Items.Clear();
// 添加方法一:
cmb.Items.AddRange(arrCols);
// 移除某一个项
cmb.Items.Remove("ColA");
// 移除某个位置上的项
cmb.Items.RemoveAt(0);
// 在第二行插入"ColE"
cmb.Items.Insert(1, "ColE");
// 在最后添加一条记录
cmb.Items.Add("ColF");

cmb.Items.Clear();
// 我们还可以循环遍历添加
foreach (string Item in arrCols)
    cmb.Items.Add(Item);