让你的下拉栏变成表格,更加直观

来源:互联网 发布:网络语pb是啥意思 编辑:程序博客网 时间:2024/04/28 12:02

转一个别人写的:(原帖见http://blog.csdn.net/crazycock/archive/2004/10/24/149611.aspx)


TDBLookupComboboxEh和TDBGridEh一样强大无比,可以做出Combobox下拉出Grid的效果。
下面是一些重要属性的小结(可怜费了我半天功夫,文档太少了.......)



(1)ListSource和DataSource属性,这个比较好理解,DataSource就是这个ComboBox自身所对应数据库的字段所在的TDataSource。而ListSource则对应着这个ComboBox自身的字段所关联的字典的数据集(比较拗口)。
例如:ADOTable1是商品表,DataSource1是对应ADOTable1,ADOTable2是商品分类表,DataSource2是对应ADOTable2。现在需要在界面上有一个TDBLookupComboboxEh,你需要的效果是TDBLookupComboboxEh关联商品表的商品分类这个字段,而且希望用户可以很方便选择商品分类,那么他的ListSource就应该选择DataSource2,他的DataSource对应DataSource1。

(2)DataField属性。应该是主表的字段名称。

(3)KeyField属性。应该是对应编码表的对应字段的名称;

(4)ListField属性。这个是个很关键的属性,如果你希望下拉出一个表格的效果而不是仅仅一个List的效果,那么这个地方可以填写多个字段名,中间用“;”格开(用分号格开)。

(5)ListFieldIndex属性。这个属性也很关键。它决定你选中后,在控件里显示什么内容,虽然商品表和商品分类表之间靠商品分类编码关联,但是你肯定希望显示出来的是商品分类名称,这个时候这个参数就很重要了。例如:前面的ListField属性设置为“flbm;flmc;sjfl”(注:分类编码;分类名称;上级分类),那么如果用户选中Combobox下拉的菜单后你希望显示分类名称而不是分类编码,就需要设置ListFieldIndex为1而不是0。这个仅仅是显示的内容,实际入库的内容还是DataField对应的内容。

(6)Style属性。这个属性设置为csDropDownListEh即可保证用户只能选择而无法输入字符。如果设置为csDropDownEh则可以输入字符(感觉不可能让用户自行输入内容,除非表很大不好选,用这个功能来快速定位,但是要对输入的内容进行合法性验证)

(7)DropDownBox.ShowTitle属性。该属性设置为True可显示下拉表格的标题。

(8)DropDownBox.Column属性。该属性和DBGridEh的Column属性类似,可以对显示的标题进行设定(否则默认标题是字段名),也可以对下拉表格的一些参数进行设置,例如显示的行数等。

(9)DropDownBox.Sizable属性。决定下拉的表格能否允许用户改变Size。

(10)EditButton属性。可以允许用户设置右边那个小按钮的类型,是下拉图标还是自定义图标还是其他样式。

------------------------

希望后来人能够少走弯路,呵呵~

原创粉丝点击