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


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

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

帅哥哟,离线,有人找我吗?
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
输出如图
图片点击可在新窗口打开查看
现在想要实现如下效果
图片点击可在新窗口打开查看
在鼠标单击不同行时,显示当前行的人员信息,单个增加控件可以实现这种效果,但是想用动态增加控件的方式,不知道能不能实现,自己试没成功,求实现效果的代码


 回到顶部
帅哥哟,离线,有人找我吗?
dhyskyworld
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
dhyskyworld
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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,有什么解决方法么?

 回到顶部
帅哥哟,离线,有人找我吗?
dhyskyworld
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
dhyskyworld
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/5/11 14:09: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)
            If lbl1.sender.BindingField Like "*日期*" Then '绑定的列含有日期2个字
                lbl1.Text = format(lbl1.Value, "yyyy-MM-dd")
                End If
            Next
执行出错

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/5/11 14:26:00 [显示全部帖子]

那代码要怎么改,想了一下,感觉无从下手啊
[此贴子已经被作者于2023/5/11 14:30:35编辑过]

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/5/11 14:43:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


[此贴子已经被作者于2023/5/11 14:58:42编辑过]

 回到顶部