以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:窗口主菜单的项目单击事件代码问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154217) |
-- 作者:昱飞哥 -- 发布时间:2020/9/8 12:33:00 -- 求助:窗口主菜单的项目单击事件代码问题 有窗口菜单如下: 常用网址里的项目是根据datatables(“网址”)自动生成的,如下图: 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 详细错误信息: 未将对象引用设置到对象的实例。 请教老师,上述代码哪里有问题? |
-- 作者:有点蓝 -- 发布时间: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
|
-- 作者:昱飞哥 -- 发布时间: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 |