Foxtable(狐表)用户栏目专家坐堂 → 未将对象引用设置到对象的实例


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

主题:未将对象引用设置到对象的实例

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


加好友 发短信
等级:小狐 帖子:373 积分:2682 威望:0 精华:0 注册:2020/7/24 10:30:00
未将对象引用设置到对象的实例  发帖心情 Post By:2022/7/7 12:07:00 [只看该作者]

老师:
      窗口afterload执行以下代码的时候出现报错,未将对象引用设置到对象的实例。用户名的树形结构出不来,麻烦看一下。

Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = e.Form.Controls("用户")
nd = Tr.Nodes.Add("所有用户","所有用户")
For Each u As UserInfo In Users
    If u.Type = UserTypeEnum.User Then
        If tr.Nodes("所有用户").Nodes.Contains(u.Group) = False Then
            tr.Nodes("所有用户").Nodes.Add(u.Group)
        End If
        tr.Nodes("所有用户").Nodes(u.Group).Nodes.Add(u.Name)
    End If
Next
tr.ExpandAll


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


加好友 发短信
等级:超级版主 帖子:111403 积分:567085 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 12:11:00 [只看该作者]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

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


加好友 发短信
等级:小狐 帖子:373 积分:2682 威望:0 精华:0 注册:2020/7/24 10:30:00
回复:(有点蓝)调试技巧:http://www.foxtable.com/...  发帖心情 Post By:2022/7/7 12:59:00 [只看该作者]

运行检测了一下,显示这几句都有错误。我无法理解了。
Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = e.Form.Controls("用户")
nd = Tr.Nodes.Add("所有用户","所有用户")




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


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

不可能的

Dim tr As WinForm.TreeView
msgbox(1)
Dim nd As WinForm.TreeNode
msgbox(2)
tr = e.Form.Controls("用户")
msgbox(tr is nothing)
nd = Tr.Nodes.Add("所有用户","所有用户")
msgbox(nd is nothing)
For Each u As UserInfo In Users
msgbox(u.name)
    If u.Type = UserTypeEnum.User Then
msgbox(u.Group is nothing)
msgbox(tr.Nodes.Contains("所有用户"))
        If tr.Nodes("所有用户").Nodes.Contains(u.Group) = False Then
msgbox(u.Group)
            tr.Nodes("所有用户").Nodes.Add(u.Group)
        End If
msgbox(tr.Nodes("所有用户").Nodes(u.Group) is nothing)
        tr.Nodes("所有用户").Nodes(u.Group).Nodes.Add(u.Name)
    End If
Next
tr.ExpandAll

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


加好友 发短信
等级:小狐 帖子:373 积分:2682 威望:0 精华:0 注册:2020/7/24 10:30:00
回复:(有点蓝)不可能的Dim tr As WinForm.TreeView...  发帖心情 Post By:2022/7/7 14:13:00 [只看该作者]

老师:
      下面这两句在运行的时候出现了false 的提示。
tr = e.Form.Controls("用户")
msgbox(tr Is Nothing)————————————————————————提示false 
nd = Tr.Nodes.Add("所有用户","所有用户")
msgbox(nd Is Nothing)————————————————————————提示false 




我试着把e.form.controls("用户")  改成    forms("权限设置").controls("用户")    再次测试还是报错  提示false 

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


加好友 发短信
等级:超级版主 帖子:111403 积分:567085 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 14:21:00 [只看该作者]

提示false 是正确的啊!根本没有理解代码Is Nothing的意思。【tr Is Nothing】如果是true表示tr是空对象,如果是false表示tr是有内容的,可以获取到控件对象。

看哪一个提示框弹出关闭后,出现的“未将对象引用设置到对象的实例

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


加好友 发短信
等级:小狐 帖子:373 积分:2682 威望:0 精华:0 注册:2020/7/24 10:30:00
回复:(有点蓝)提示false 是正确的啊!根本没有...  发帖心情 Post By:2022/7/7 14:35:00 [只看该作者]

老师:
     测出来了。
是下面这一句
msgbox(tr.Nodes("所有用户").Nodes(u.Group) is nothing),提示 “ture”。    

检查了用户清单,没有给全部的用户做分组设定,里面有一个人没有分组,导致一直取不到分组数据。所以就报错了。

要怎么写才能避免这种错误?




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


加好友 发短信
等级:超级版主 帖子:111403 积分:567085 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 14:42:00 [只看该作者]

if u.Group > "" then

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


加好友 发短信
等级:小狐 帖子:373 积分:2682 威望:0 精华:0 注册:2020/7/24 10:30:00
回复:(有点蓝)if u.Group > "" then  发帖心情 Post By:2022/7/7 15:58:00 [只看该作者]

老师:
      我用  if u.Group > "" then   ,如下,会多出三个组来。
图片点击可在新窗口打开查看

 If tr.Nodes("所有用户").Nodes.Contains(u.Group) = False  则不会 多出组别

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

我是想 即使没有配置用户组别 ,也不影响权限的设置 。 

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


加好友 发短信
等级:超级版主 帖子:111403 积分:567085 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 16:17:00 [只看该作者]

改后的代码呢? 
[此贴子已经被作者于2022/7/7 16:17:13编辑过]

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