Foxtable(狐表)用户栏目专家坐堂 → 求助:窗口主菜单的项目单击事件代码问题


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

主题:求助:窗口主菜单的项目单击事件代码问题

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


加好友 发短信
等级:小狐 帖子:328 积分:2529 威望:0 精华:0 注册:2020/3/2 23:15:00
求助:窗口主菜单的项目单击事件代码问题  发帖心情 Post By:2020/9/8 12:33:00 [只看该作者]

有窗口菜单如下:

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
常用网址里的项目是根据datatables(“网址”)自动生成的,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
为了实现:生成之后的网址单击打开对应网址,于是,我在ItemClick事件中写下如下代码:

If e.StripItem.ParentItem.text = "常用网址" Then
    Dim dr As DataRow = DataTables("常用网址表").find("网站名称 = '"& e.StripItem.Name &"'")
    If dr IsNot Nothing Then
        Dim Proc As New Process '定义一个新的Process
        Proc.File = dr("网址") '指定要打开的网页地址
        Proc.Start()
    End If
End If

出现报错:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,开发者主控窗口,ItemClick
详细错误信息:
未将对象引用设置到对象的实例。

请教老师,上述代码哪里有问题?




 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/8 13:40:00 [只看该作者]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm

msgbox(e.StripItem.ParentItem is nothing)
If e.StripItem.ParentItem.text = "常用网址" Then
msgbox(e.StripItem.Name)
msgbox(e.StripItem.text)
    Dim dr As DataRow = DataTables("常用网址表").find("网站名称 = '"& e.StripItem.Name &"'")
    If dr IsNot Nothing Then
msgbox(dr("网址") )
        Dim Proc As New Process '定义一个新的Process
        Proc.File = dr("网址") '指定要打开的网页地址
        Proc.Start()
    End If
End If

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


加好友 发短信
等级:小狐 帖子:328 积分:2529 威望:0 精华:0 注册:2020/3/2 23:15:00
  发帖心情 Post By:2020/9/8 15:17:00 [只看该作者]

老师,终于知道哪里出问题了。
是因为:比方单击“常用工具”,因为它没有父项目,所以代码出错。
改成下面的代码之后运行成功:

If e.StripItem.ParentItem IsNot Nothing Then      '如果当前单击的菜单项目存在父项目(这句代码一定要加
    If e.StripItem.ParentItem.text = "常用网址" Then     '且当前单击的菜单项目的父项目的标题是"常用网址" 
        Dim dr As DataRow = DataTables("常用网址表").find("网站名称 = '"& e.StripItem.Name &"'")
        If dr IsNot Nothing Then
            Dim Proc As New Process '定义一个新的Process
            Proc.File = dr("网址") '指定要打开的网页地址
            Proc.Start()
        End If
    End If
End If

 回到顶部