以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]动态增加控件,动态绑定行问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186543) |
-- 作者:dhyskyworld -- 发布时间: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 输出如图 现在想要实现如下效果 在鼠标单击不同行时,显示当前行的人员信息,单个增加控件可以实现这种效果,但是想用动态增加控件的方式,不知道能不能实现,自己试没成功,求实现效果的代码 |
-- 作者:有点蓝 -- 发布时间:2023/5/10 16:42:00 -- 参考:http://www.foxtable.com/webhelp/topics/1860.htm lbl.BindingField = "表A." & Tables("表A").Cols(i).name
|
-- 作者:dhyskyworld -- 发布时间:2023/5/10 17:08:00 -- 我的代码是以列名作为控件的名称,这个是不变的,是不是要另编一段代码增加控件来实现动态绑定呢?还是说可以以一段代码来同时增加控件,并指定其中的一批控件的列名绑定和其余的控件的动态绑定 [此贴子已经被作者于2023/5/10 17:09:29编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/5/10 17:11:00 -- 在增加一个控件进行绑定。比如姓名后再增加一个对应显示内容的控件 |
-- 作者:dhyskyworld -- 发布时间:2023/5/11 10:48:00 -- 谢谢蓝老师的指点,动态增加控件,以及动态绑定已实现,就是还有一个关于日期显示的问题,表中的日期列是Data类型,显示是XXXX-XX-XX格式,但是动态控件读取的是DataTime类型的,XXXX-XX-XX 00::00:00,有什么解决方法么? |
-- 作者:有点蓝 -- 发布时间:2023/5/11 10:50:00 -- 到DataFormat事件处理:http://www.foxtable.com/webhelp/topics/0737.htm e.Text = format(e.Value,"yyyy-MM-dd")
|
-- 作者:dhyskyworld -- 发布时间: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 -- 发布时间:2023/5/11 11:06:00 -- 难道是要遍历控件查找后再设置格式,因为是有多个日期列,控件都是动态增加以及动态绑定的,不知道怎么弄了 [此贴子已经被作者于2023/5/11 11:15:23编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/5/11 11:24:00 -- 判断一下控件有绑定了日期列再格式化 |
-- 作者:dhyskyworld -- 发布时间: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编辑过]
|