以文本方式查看主题

-  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=188242)

--  作者:瑞峰
--  发布时间:2023/9/10 16:10:00
--  [原创] 代码设置 ComboBox下拉框
如何设置 cmb.DataSource = "dt.name" 这段。
dt.=name 是空白,直接使用dt 又不行,必须要一个string

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.Com mandText = "SELE CT UserID,UserName From {st_user}"
dt = cmd.ExecuteReader
dt.load
\'msgbox(dt.name)
Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
cmb.DisplayMember = "UserName" \'设置显示列
cmb.ValueMember = "Userid" \'设置取值列
cmb.DataSource = "dt.name" \'表项目来自于客户表

--  作者:有点蓝
--  发布时间:2023/9/10 21:26:00
--  
cmb.DataSource只能绑定现有的数据表,无法绑定临时表
--  作者:有点蓝
--  发布时间:2023/9/10 21:27:00
--  
如果要使用不同取值的显示值建议使用下拉组合框:http://www.foxtable.com/webhelp/topics/2098.htm
--  作者:瑞峰
--  发布时间:2023/9/11 11:48:00
--  
谢谢,加为外部表 就可以使用了。
但输入UserName,Userid的任何记录,都不能自动填充,必须自己完全输入
并且DataSort也没有效果

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
cmb.DisplayMember = "UserName" \'设置显示列
cmb.ValueMember = "Userid" \'设置取值列
cmb.DataSort = "UserName"
cmb.DataSource = "st_user_profile" \'表项目来自于客户表
cmb.AutoComplete = True
[此贴子已经被作者于2023/9/11 11:48:37编辑过]

--  作者:有点蓝
--  发布时间:2023/9/11 12:05:00
--  
调换下位置

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
cmb.AutoComplete = True
cmb.DisplayMember = "UserName" \'设置显示列
cmb.ValueMember = "Userid" \'设置取值列
cmb.DataSort = "UserName"
cmb.DataSource = "st_user_profile" \'表项目来自于客户表


--  作者:瑞峰
--  发布时间:2023/9/11 12:55:00
--  
Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")
cmb.AutoComplete = True
cmb.DataSort = "UserName"
cmb.DisplayMember = "UserName" \'设置显示列
cmb.ValueMember = "Userid" \'设置取值列
cmb.DataSource = "st_user_profile" \'表项目来自于客户表

DataSort也没有效果,我换成Userid 也没有用



--  作者:有点蓝
--  发布时间:2023/9/11 13:31:00
--  
DataSort属性已经没有用了。如果又要显示列,又要排序的话,建议使用下拉窗口+drawcell处理吧