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


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

主题:[求助]自定义函数Form错误

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20167 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]自定义函数Form错误  发帖心情 Post By:2015/12/2 8:40:00 [只看该作者]

老师,
    Form自定义函数中有误,不知道怎么修改,请老师给看看。
Dim sender = args(0)
Dim e As object= args(1)
’Dim Form As object
Dim dataname As String=e.Form.Name
Dim dt As DataTable=DataTables("Z002菜单生成")
Dim dr As DataRow=dt.Find("编码规则='"& sender.Name &"'")
If dr IsNot Nothing And dr.IsNull("执行命令")=False Then
    Select Case dr("执行命令")
               Case "模拟点击"
            Dim btn As WinForm.Button
            e.Form.Controls(dr("打开对应窗口")).PerformClick()    是否这里写的不对呢?
    End Select
End If

错误提示

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


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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20167 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/12/2 8:52:00 [只看该作者]

哦 老师,
测试其中自定义函数中这部分直接写成
F orms.Controls(“窗口1”)).PerformClick()  

有效不提示错误

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20167 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/12/2 10:03:00 [只看该作者]

红袍老师,
   这个会是什么原因呢?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/2 10:07:00 [只看该作者]

那这样写

 

sender.Findform.Controls(dr("打开对应窗口")).PerformClick() 

 


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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20167 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/12/2 10:22:00 [只看该作者]

老师,
这块又怎么写
            Dim ck As WinForm.Form =Forms(dr("打开对应窗口"))
            If ck<>"" Then
                ck.Open
            Else
                MessageBox.Show("未找到对应窗口,请开发者修改!")
            End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/2 10:26:00 [只看该作者]

If Forms.Contains(dr("打开对应窗口")) Then

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20167 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/12/2 10:31:00 [只看该作者]


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

红袍老师,
  菜单是放到TabControl 总的页面中,是不是,还需要指定哪个页面才行,还是怎么的?

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20167 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/12/2 10:48:00 [只看该作者]

老师,
这个控件是可以找到的
是不是我改的不对
Dim sender = args(0)
Dim e As object= args(1)
Dim dt As DataTable=DataTables("菜单生成")
Dim dr As DataRow=dt.Find("编码规则='"& sender.Name &"'")
If dr IsNot Nothing And dr.IsNull("执行命令")=False Then
    Select Case dr("执行命令")
               Case "模拟点击"
            MessageBox.Show(dr("打开对应窗口"))
            'MessageBox.Show(sender.Findforms.Controls(dr("打开对应窗口")))'这句往后就提示了
            sender.Findform.Controls(dr("打开对应窗口")).PerformClick()
            
    End Select
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/2 11:22:00 [只看该作者]

那就不要相对引用。

 

生成的时候,给菜单赋值其窗口名。如 控件.tag = "窗口1"

 

或者直接用一个变量来记录窗口名。


 回到顶部