以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]获取属性和控件类型 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102509) |
-- 作者:blsu33 -- 发布时间:2017/6/21 15:17:00 -- [求助]获取属性和控件类型 老师, 怎么获取这些设置呢 Dim o = e.Form DataTables("表B").DataRows.Clear For Each c As object In o.Gettype.getproperties Dim dr As DataRow=DataTables("表B").AddNew() DR("控件名")=c.‘这块怎么写能导出控件名 DR("类型")=c.‘这块怎么写能导出控件类型 DR("属性")=c.name Next
[此贴子已经被作者于2017/6/21 15:20:29编辑过]
|
-- 作者:有点色 -- 发布时间:2017/6/21 15:26:00 -- 导出窗口所有控件的所有属性?
Dim frm As WinForm.Form = Forms("窗口1") |
-- 作者:blsu33 -- 发布时间:2017/6/21 16:27:00 -- 老师‘ 能获其对应取值吗
|
-- 作者:有点色 -- 发布时间:2017/6/21 16:37:00 -- Dim frm As WinForm.Form = Forms("窗口1") For Each c As object In frm.controls For Each o As object In c.Gettype.getproperties Dim val = o.getvalue(c, Nothing) If val Is Nothing Then output.show(c.name & " " & c.Gettype.name & " " & o.name) Else output.show(c.name & " " & c.Gettype.name & " " & o.name & " " & val.Tostring) End If Next Next |
-- 作者:blsu33 -- 发布时间:2017/6/28 13:44:00 -- 老师, 可以部分获得控件的值,好像有些属性不能获得,为什么呢? .NET Framework 版本:2.0.50727.3053 Foxtable 版本:2017.6.12.1 错误所在事件:窗口,窗口1,Button2,Click 详细错误信息: 未找到 Property Get 方法。 能否取得值后,在根据表直接生成窗口呢,代码怎么写呢。
|
-- 作者:blsu33 -- 发布时间:2017/6/28 14:06:00 -- 批量生成代码 \'Dim kjmcs As List(Of String)=DataTables("表B").GetValues("控件名称") \'For Each kjmc As String In kjmcs \'Dim dr2 As DataRow=DataTables("表B").Find("控件名称=\'" & kjmc &"\'") \'Dim drs As List(Of DataRow)=DataTables("表B").Select("控件名称=\'" & kjmc &"\'") \'If DR2 IsNot Nothing Then \'If DRS IsNot Nothing Then \'Dim STR As String="WinForm." & dr2("控件类型") \'Dim STR2 As String="ControlTypeEnum." & dr2("控件类型") \'Dim TJKJ As STR =E.Form.CreateControl(dr("控件名称"),str2)\'这块有问题 \'For Each dr As DataRow In DRS \'TJKJ & "." & dr("属性")=dr("属性值") \'Next \'e.Form.AddControl(TJKJ) \'End If \'End If \'Next
|
-- 作者:blsu33 -- 发布时间:2017/6/28 14:07:00 -- 例子如下: |
-- 作者:有点色 -- 发布时间:2017/6/28 15:05:00 -- 生成
on error resume Next
无法通过获取的属性重新生成窗口的,布局不知道,层级不知道,属性值也不确定。 |
-- 作者:blsu33 -- 发布时间:2017/6/28 15:28:00 -- 老师, 只有一层(全部填满窗口),且没有层级(窗口中只有一个控件),用8楼代码生成属性值,用六楼怎么改能生成呢? 修改6楼代买,下面问题多,劳烦老师给改改 Dim Code As String Code = Code & "Dim drs As List(Of DataRow)=DataTables(""表B"").Select(""控件名称=\'Table1\'"") & vbcrlf Code = Code & "Dim TJKJ As ""WinForm."" & dr2(""控件类型"")=E.Form.CreateControl(dr(""控件名称""),ControlTypeEnum." & dr2(""控件类型""))" & vbcrlf Code = Code & "For Each dr As DataRow In DRS" & vbcrlf Code = Code & "TJKJ & dr2(""控件类型"")"& ""."" & dr(""属性"")=dr(""属性值"")" & vbcrlf Code = Code & "Next" & vbcrlf Code = Code & "e.Form.AddControl(TJKJ)" & vbcrlf Functions.Add("thkj",Code) Functions.Complie() [此贴子已经被作者于2017/6/28 16:02:18编辑过]
|
-- 作者:有点色 -- 发布时间:2017/6/28 16:06:00 -- 无法生成的。表格只能保存字符,而控件的属性值,各种类型都有,无法还原的。 |