Foxtable(狐表)用户栏目专家坐堂 → ComboBox控件一些建议。


  共有14820人关注过本帖树形打印复制链接

主题:ComboBox控件一些建议。

帅哥哟,离线,有人找我吗?
菜鸟foxtable
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
ComboBox控件一些建议。  发帖心情 Post By:2009/12/21 23:13:00 [显示全部帖子]

帮助中有下面这三样东西:能否再灵活一些?
 

Dim cmd As New SQLCommand
Dim
dt As DataTable
Dim
cmb As WinForm.ComboBox
cmd.CommandText =
"SELECT DISTINCT 客户 From {订单}"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls(
"ComboBox1")
cmb.ComboList= dt.GetComboListString(
"客户"
)

1、GetComboListString能否取两列的值?比如:
dt.GetComboListString("客户" & "公司")

======================================================================

Dim cmb As WinForm.ComboBox
cmb = Forms(
"窗口1").Controls("ComboBox1")
cmb.DisplayMember =
"客户名称" '设置显示列
cmb.ValueMember =
"客户编号" '设置取值列
cmb.DataSource=
"客户"

2、cmb.DataSource 能否直接引用外部数据而不必加载进来?比如:
Dim cmd As New SQLCommand
cmd.Connecti
cmd.CommandText = "SELECT DISTINCT 客户 From {订单}"
dt = cmd.ExecuteReader()
.....
....
cmb.DataSource= dt
=======================================================================


ListItemFormat

如果列表项目来自于数据表,此事件将在生成每一个列表项目时执行。

e参数属性:

Form:      触发事件的窗口
Sender:    触发事件的控件
ListItem:  准备显示的行,DataRow类型
Value:     列表项目准备显示的内容

示例

列表项目来自于数据表时,下拉的列表项目只能显示一列的内容,如果希望显示多列内容,可以通过事件ListItemFormat来实现。
例如某个ComboBox的列表项目来自于客户表,取值列为客户编号,显示列为客户名称,在默认情况下下拉列表只显示客户名称,选择某客户后,自动填入对应的客户编号。
如果希望下拉列表同时显示客户编号和客户名称两列的内容,可以在ListItemFormat事件中设置如下代码:

e.Value = e.ListItem("客户编号") & "|" & e.ListItem("客户名称")

上面这个事件动态加载外部表能玩吗?


 回到顶部