Foxtable(狐表)用户栏目专家坐堂 → [求助]自定义函数问题


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

主题:[求助]自定义函数问题

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]自定义函数问题  发帖心情 Post By:2017/9/10 21:49:00 [显示全部帖子]

老师,

代码里面定义了panl

        'Dim pmcx As WinForm.Panel=FormS(dr("ckname")).CreateControl("pnl_" & dr("ym_gzid") & "_cx",ControlTypeEnum.Panel)
       '批量添加控件
    Dim zd As New Dictionary(Of String, object)
    zd.Add("02",pmkj)
    zd.Add("03",pmcx)
    zd.Add("04",pmcz)
    zd.Add("05",pmxs)
    For Each mbmc As object In zd.Values '显示所对应的值
        Functions.Execute("za_nb_addctron",e,mbmc)
    Next
    ' 批量添加控件


za_nb_addctron自定义函数如下

Dim e As object=args(0)
Dim pnl As object = args(1)
Select Case pnl.name.split("_")(2)
    
        
    Case "cx"
        Dim s1() As String = {"btn_xz_","btn_xg_","btn_sc_","btn_gb_"}
        For Each  si As String In s1
            Dim code As String = "dim e = args(0)" & vbcrlf
            code &= "dim txt = e.form.CreateControl(""" & si & pnl.name.split("_")(1) & """, ControlTypeEnum.Button)" & vbcrlf
            code &= "e.form.Controls(""" & pnl.name & """).AddControl(txt)" & vbcrlf‘
            'msgbox(code)
            Functions.remove("test")
            Functions.Add("test",Code)
            Functions.Complie()
            Functions.Execute("test", e)
        Next
        Case"cx"
End Select

代码有误,劳烦老师给看下

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


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


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170910215407.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170910215645.png
图片点击可在新窗口打开查看


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


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

1楼 
code &= " pnl.AddControl(txt)" & vbcrlf‘

也不对


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170910221557.png
图片点击可在新窗口打开查看


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


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

老师,
    上述代码耗时12秒,如何能快速增加10个Boton,名字规则btn_xz_*名称
[此贴子已经被作者于2017/9/10 23:06:00编辑过]

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


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

求老师给演示下,不明白。这个例子其实就是我想要的但是,速度太慢
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=104035&replyID=&skin=1


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


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

那个例子要是实在改不了

劳烦您用这个
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:复件 添加方法.foxdb



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


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

多谢
[此贴子已经被作者于2017/9/11 9:38:42编辑过]

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


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

 老师,
 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=104035&replyID=&skin=1
这个例子不能这样改吗?

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


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

 老师,
  还是老问题

Dim pg As WinForm.TabPage=tab.TabPages(dr("ym_gzid"))
    Dim s1 As WinForm.SplitContainer=FormS(dr("ckname")).CreateControl("SPL_ml_" & dr("ym_gzid"),ControlTypeEnum.SplitContainer)
    Dim trvmls As WinForm.TreeView=FormS(dr("ckname")).CreateControl("trv_zy_" & dr("ym_gzid"),ControlTypeEnum.TreeView)
    Dim pmkj As WinForm.Panel=FormS(dr("ckname")).CreateControl("pnl_kj_" & dr("ym_gzid"),ControlTypeEnum.Panel)
    Dim pmcx As WinForm.Panel=FormS(dr("ckname")).CreateControl("pnl_cx_" & dr("ym_gzid"),ControlTypeEnum.Panel)
    Dim pmcz As WinForm.Panel=FormS(dr("ckname")).CreateControl("pnl_cz_" & dr("ym_gzid"),ControlTypeEnum.Panel)
    Dim pmxs As WinForm.Panel=FormS(dr("ckname")).CreateControl("pnl_xs_" & dr("ym_gzid"),ControlTypeEnum.Panel)
    'S1.BackMost=True
    Dim s2 As WinForm.SplitContainer=FormS(dr("ckname")).CreateControl("SPL_kj_" & dr("ym_gzid"),ControlTypeEnum.SplitContainer)
    Dim s3 As WinForm.SplitContainer=FormS(dr("ckname")).CreateControl("SPL_cx_" & dr("ym_gzid"),ControlTypeEnum.SplitContainer)
    S3.Orientation=0
    Dim s4 As WinForm.SplitContainer=FormS(dr("ckname")).CreateControl("SPL_xs_" & dr("ym_gzid"),ControlTypeEnum.SplitContainer)
    'S4.TopMost=True
    S4.Orientation=0
    S1.Panel2.AddControl(S2)
    S1.Panel1.AddControl(trvmls)
    S2.Panel1.AddControl(S3)
    S2.Panel2.AddControl(pmkj)
    S3.Panel2.AddControl(S4)
    S3.Panel1.AddControl(pmcx)
    S4.Panel2.AddControl(pmcz)
    S4.Panel1.AddControl(pmxs)
    pmxs.BackColor=Color.red
    trvmls.Dock=5
    pmkj.Dock=5
    pmcx.Dock=5
    pmcz.Dock=5
    pmcz.Dock=5
    S1.FixedPanel=1
    S2.FixedPanel=2
    S3.FixedPanel=1
    S4.FixedPanel=2
    S1.Dock=5
    S2.Dock=5
    S3.Dock=5
    S4.Dock=5
    pg.AddControl(S1)
   
    '批量添加控件
    Dim zd() As object ={pmkj,pmcx,pmcz,pmxs}
    Dim st As Date = Date.Now
    Dim str As String = "dim e = args(0)" & vbcrlf
    str &= "dim txt " & vbcrlf
    For Each mbmc As object In zd '显示所对应的值
        MessageBox.Show(mbmc.name )
        str &= Functions.Execute("za_nb_addctron",e,mbmc)
        str &= vbcrlf
    Next
    msgbox(str)
    Functions.remove("test")
    Functions.Add("test",str)
    Functions.Complie()
    Functions.Execute("test", e)
    '' 批量添加控件
自定义函数用的是您给的,为什么还是存在错误,控件无法找到呢?



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


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

图片点击可在新窗口打开查看

 回到顶部
总数 23 1 2 3 下一页