Foxtable(狐表)用户栏目专家坐堂 → [求助]动态增加控件,动态绑定行问题


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

主题:[求助]动态增加控件,动态绑定行问题

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
[求助]动态增加控件,动态绑定行问题  发帖心情 Post By:2023/5/10 16:38:00 [只看该作者]

有如下表:
图片点击可在新窗口打开查看
新建一个窗口,增加一个按钮控件,按钮代码如下
Dim x As Integer = 0
Dim y As Integer = 0
For i As Integer = 0 To 3 '列出全部
    If i Mod 2 = 0 Then
        y += 30
        x = 0
    Else
        x += 160
    End If
    Dim lbl As WinForm.label
    lbl = e.Form.CreateControl("label" & i, ControlTypeEnum.label)
    lbl.text = Tables("表A").Cols(i).Caption
    lbl.Left = 10 + x
    lbl.Top = 10 + y
    lbl.Width = "600"
    lbl.Height = "260"
    e.Form.AddControl(lbl)
Next
输出如图
图片点击可在新窗口打开查看
现在想要实现如下效果
图片点击可在新窗口打开查看
在鼠标单击不同行时,显示当前行的人员信息,单个增加控件可以实现这种效果,但是想用动态增加控件的方式,不知道能不能实现,自己试没成功,求实现效果的代码


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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/10 16:42:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/1860.htm

lbl.BindingField = "表A." & Tables("表A").Cols(i).name

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/5/10 17:08:00 [只看该作者]

我的代码是以列名作为控件的名称,这个是不变的,是不是要另编一段代码增加控件来实现动态绑定呢?还是说可以以一段代码来同时增加控件,并指定其中的一批控件的列名绑定和其余的控件的动态绑定
[此贴子已经被作者于2023/5/10 17:09:29编辑过]

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/10 17:11:00 [只看该作者]

在增加一个控件进行绑定。比如姓名后再增加一个对应显示内容的控件

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/5/11 10:48:00 [只看该作者]

谢谢蓝老师的指点,动态增加控件,以及动态绑定已实现,就是还有一个关于日期显示的问题,表中的日期列是Data类型,显示是XXXX-XX-XX格式,但是动态控件读取的是DataTime类型的,XXXX-XX-XX 00::00:00,有什么解决方法么?

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/11 10:50:00 [只看该作者]

DataFormat事件处理http://www.foxtable.com/webhelp/topics/0737.htm

e.Text = format(e.Value,"yyyy-MM-dd")

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/5/11 11:02:00 [只看该作者]

代码加进去出错,我的代码如下:
        Dim a As Integer = 0
        Dim b As Integer = 0
        For c As Integer = 0 To 37 '列出全部
            If c Mod 3 = 0 Then
                b += 20
                a = 0
            Else
                a += 300
            End If
            Dim lbl1 As WinForm.label
            lbl1 = e.Form.CreateControl("label" & c, ControlTypeEnum.label)
            lbl1.BindingField = "EI." & Tables("EI").Cols(c).name
            lbl1.AutoSize = True
            lbl1.Left = 130 + a
            lbl1.Top = 0 + b
            lbl1.Width = "600"
            lbl1.Height = "260"
            e.Form.Controls("SplitContainer2").Panel1.AddControl(lbl1)
        Next
[此贴子已经被作者于2023/5/11 11:02:36编辑过]

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/5/11 11:06:00 [只看该作者]

难道是要遍历控件查找后再设置格式,因为是有多个日期列,控件都是动态增加以及动态绑定的,不知道怎么弄了
[此贴子已经被作者于2023/5/11 11:15:23编辑过]

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/11 11:24:00 [只看该作者]

判断一下控件有绑定了日期列再格式化

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/5/11 12:23:00 [只看该作者]

蓝老师,这段代码出错e.Text = format(e.Value,"yyyy-MM-dd"),因为增加的是标签控件,改成e.Text = format(e.ReadValue,"yyyy-MM-dd")也出错,最后改成e.Text = format(e.Text,"yyyy-MM-dd"),执行时又不显示日期,感觉好像因为增加的是标签控件实现不了,我是不是应该改成TextBox控件?如果是在表中更改时间格式,控件能读取到更改后的时间格式吗?如果可以是在哪里编写代码?
[此贴子已经被作者于2023/5/11 13:04:40编辑过]

 回到顶部
总数 17 1 2 下一页