以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- ComboBox控件一些建议。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5595) |
-- 作者:菜鸟foxtable -- 发布时间:2009/12/21 23:13:00 -- ComboBox控件一些建议。 帮助中有下面这三样东西:能否再灵活一些? Dim cmd As New SQLCommandDim 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: 触发事件的窗口 示例 列表项目来自于数据表时,下拉的列表项目只能显示一列的内容,如果希望显示多列内容,可以通过事件ListItemFormat来实现。 e.Value = e.ListItem( "客户编号") & "|" & e.ListItem("客户名称")上面这个事件动态加载外部表能玩吗? |
-- 作者:狐狸爸爸 -- 发布时间:2009/12/22 8:19:00 -- 1、用GetUniqueValues,可以取多列的值 2、这是必须的,但是最好不要直接帮定到dt,而是用GetComboListString从dt获得不重复的值,再设置给combolist属性 3、这个事件和外部表无关的 |
-- 作者:baoxyang -- 发布时间:2009/12/22 8:45:00 -- 建议把Datalist变成一个可显多列值及取多列值的一个控件。我也有这方需求,希望有一个控件可取数据表中多列值选择并显示多列值。 |
-- 作者:狐狸爸爸 -- 发布时间:2009/12/22 8:59:00 -- Combox就可以 |
-- 作者:baoxyang -- 发布时间:2009/12/22 9:32:00 -- 不知如何使用? |
-- 作者:czy -- 发布时间:2009/12/22 10:33:00 -- 以下是引用baoxyang在2009-12-22 9:32:00的发言:
不知如何使用?
|
-- 作者:baoxyang -- 发布时间:2009/12/22 16:20:00 -- 谢C版,只不过感觉Combobox效果差点。灵活性不足。 |