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


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

主题: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("客户名称")

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/12/22 8:19:00 [只看该作者]

1、用GetUniqueValues,可以取多列的值

2、这是必须的,但是最好不要直接帮定到dt,而是用GetComboListString从dt获得不重复的值,再设置给combolist属性

3、这个事件和外部表无关的

 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/12/22 8:45:00 [只看该作者]

建议把Datalist变成一个可显多列值及取多列值的一个控件。我也有这方需求,希望有一个控件可取数据表中多列值选择并显示多列值。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/12/22 8:59:00 [只看该作者]

Combox就可以

 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/12/22 9:32:00 [只看该作者]

不知如何使用?


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/22 10:33:00 [只看该作者]

以下是引用baoxyang在2009-12-22 9:32:00的发言:

不知如何使用?


在ListItemFormat事件中设置代码。


 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/12/22 16:20:00 [只看该作者]

谢C版,只不过感觉Combobox效果差点。灵活性不足。

 回到顶部