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


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

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

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 12:11:00 [显示全部帖子]

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

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望: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

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望: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是有内容的,可以获取到控件对象。

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

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 14:42:00 [显示全部帖子]

if u.Group > "" then

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 16:17:00 [显示全部帖子]

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

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 16:33:00 [显示全部帖子]

For Each u As UserInfo In Users
    If u.Type = UserTypeEnum.User Then
        If u.Group > "" 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)
        Else
            tr.Nodes("所有用户").Nodes.Add(u.Name)
        End If
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 17:04:00 [显示全部帖子]

没看懂什么意思。分组是分组,名称是名称

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/7 17:22:00 [显示全部帖子]

For Each u As UserInfo In Users
    If u.Type = UserTypeEnum.User Then
        If u.Group = "第一组名称" orelse  u.Group = "第二组名称" 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
    End If
Next

 回到顶部