Foxtable(狐表)用户栏目专家坐堂 → 如何把表的所有字段名加入到某comlist控件中


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

主题:如何把表的所有字段名加入到某comlist控件中

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


加好友 发短信
等级:婴狐 帖子:18 积分:288 威望:0 精华:0 注册:2012/10/26 16:13:00
如何把表的所有字段名加入到某comlist控件中  发帖心情 Post By:2013/2/4 18:48:00 [只看该作者]

如何把表的所有字段名加入到某comlist控件中

正解:在comlist控件的enter事件中加入如下代码

方法一:

For Each c As DataCol In DataTables("表名").datacols
    If e.sender.items.contains(c.name) = False Then
        e.sender.items.add(c.name)
    End If
Next


方法二:

Dim str As String
For Each c As col In Tables("表A").cols
    str  = Str & "|" & c.Name
Next
e.Sender.Combolist = str

注:方法二不能写在comlist控件的enter事件中
[此贴子已经被作者于2013-2-5 22:12:31编辑过]

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


加好友 发短信
等级:婴狐 帖子:18 积分:288 威望:0 精华:0 注册:2012/10/26 16:13:00
  发帖心情 Post By:2013/2/4 22:57:00 [只看该作者]

我在combolist控件的Enter事件中这样写的

For Each c As col In Tables("基本信息表").cols
    e.sender.items.Insert(0,c.name)
Next

 

但是最终生成的结果是在Combolist控件中,出现了基本信息表中的所有字段名,各两次

为什么?

正确的写法?


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/2/5 8:49:00 [只看该作者]

 我测试了一下,如果打开窗口以后,这个控件首先获得焦点的话,就会激发enter事件两次,如果不是,鼠标点击获得焦点的话,就只会激发一次。

 解决代码。

For Each c As col In Tables("表A").cols
    If e.Sender.Items.Contains(c.name) = False Then
        e.sender.items.Insert(0,c.name)
    End If
Next

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/2/5 12:01:00 [只看该作者]

Dim str As String
For Each c As col In Tables("表A").cols
    str  = Str & "|" & c.Name
Next
e.Sender.Combolist = str

 回到顶部