Foxtable(狐表)用户栏目专家坐堂 → [求助]获取属性和控件类型


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

主题:[求助]获取属性和控件类型

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]获取属性和控件类型  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/21 16:27:00 [显示全部帖子]

老师‘
   能获其对应取值吗

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/28 13:44:00 [显示全部帖子]

老师,
   可以部分获得控件的值,好像有些属性不能获得,为什么呢?

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2017.6.12.1
错误所在事件:窗口,窗口1,Button2,Click
详细错误信息:
未找到 Property Get 方法。
  能否取得值后,在根据表直接生成窗口呢,代码怎么写呢。

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/28 14:07:00 [显示全部帖子]

例子如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自动生成成控件.foxdb



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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/28 15:28:00 [显示全部帖子]

老师,
   只有一层(全部填满窗口),且没有层级(窗口中只有一个控件),用8楼代码生成属性值,用六楼怎么改能生成呢?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:一层自动生成成控件.foxdb


修改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编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/28 16:09:00 [显示全部帖子]

不是 表格可以吗,例如一个BUTTOn 控件

Dim Code As String
Code = Code & "Dim drs As List(Of DataRow)=DataTables(""表B"").Select(""控件名称='button1'"") " & vbcrlf
Code = Code & "Dim dr2 As DataRow=DataTables(""表B"").DataRow(0)" & vbcrlf
Code = Code & "Dim TJKJ As WinForm." & "dr2(""控件类型"")=E.Form.CreateControl(dr2(""控件名称""),ControlTypeEnum." & dr2(""控件类型""))" & vbcrlf
Code = Code & "For Each dr As DataRow In DRS" & vbcrlf
Code = Code & "TJKJ & dr(""控件类型"") "& "".""  & dr(""属性"")=dr(""属性值"")" & vbcrlf
Code = Code & "Next" & vbcrlf
Code = Code & "e.Form.AddControl(TJKJ)" & vbcrlf
Functions.Add("thkj",Code)
Functions.Complie()


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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/28 16:11:00 [显示全部帖子]

老师,
  动态生成也是需要写上去的,这些属性不是我需要全部写上去的吗(默认属性忽略)。

 楼上的代码,单纯是修改正确应该怎么写,动态管理函数写不好,请老师给指导下。
[此贴子已经被作者于2017/6/28 16:28:50编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/28 16:36:00 [显示全部帖子]

老师,
  多谢了。
  动态管理函数写不好,11楼代码应该怎么写,劳烦老师给指导下,在学习下动态管理函数写法
[此贴子已经被作者于2017/6/28 16:41:40编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/29 10:07:00 [显示全部帖子]

老师,
Dim dr1 As DataRow=DataTables("表B").DataRows(0)
Dim lx As String = dr1("控件类型")
Dim sxz1 As String = dr1("控件名称")
Dim name As String = "test"
Dim sxm1 As String = "text"
Dim code As String = ""
code &= "dim frm = args(0)" & vbcrlf
code &= "dim txt = frm.CreateControl(""" & name & """, ControlTypeEnum." & lx & ")" & vbcrlf
code &= "For Each dr As DataRow In DataTables(""表B"").DataRows" & vbcrlf
code &= """txt."" & dr(""属性"") & ""="" & dr(""属性值"")" & vbcrlf'这句总是不对,怎么写呢!
code &= "next" & vbcrlf
code &= "frm.AddControl(txt)"
msgbox(code)
Functions.remove("test")
Functions.Add("test",Code)
Functions.Complie()
Functions.Execute("test", e.form)




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