以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]狐爸例子照抄也能错?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=49675)

--  作者:737182811
--  发布时间:2014/4/22 14:40:00
--  [求助]狐爸例子照抄也能错?

窗口的AfterLoad事件代码为:

Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim
trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv1.BuildTree(
"授权","分组|权限")
For
Each u As UserInfo In Users
    If
u.Type = UserTypeEnum.User Then
        If
trv2.Nodes.Contains(u.Group) = False Then
            trv2.Nodes.Add(u.Group)

        End
If
        trv2.Nodes(u.Group).Nodes.Add(u.Name)    \'----经调试,错在这一句

    End
If
Next

Trv1.Nodes(
0
).Expand()
trv2.ExpandAll()



目录树形式的
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140422143718.jpg
图片点击可在新窗口打开查看


--  作者:737182811
--  发布时间:2014/4/22 14:51:00
--  
无头案?
--  作者:Bin
--  发布时间:2014/4/22 15:00:00
--  


请上个例子看看吧.
[此贴子已经被作者于2014-4-22 15:00:43编辑过]

--  作者:737182811
--  发布时间:2014/4/22 15:01:00
--  
调试结果出来了:u.group的第一个值是空值,导致了代码出错。
不知道为毛出来个空值。

 If u.group IsNot Nothing Then
            trv2.Nodes(u.Group).Nodes.Add(u.Name)
        End If
改成这样就ok了。

--  作者:737182811
--  发布时间:2014/4/22 15:03:00
--  
晕死了,原来是有一个用户没有设置分组。
[此贴子已经被作者于2014-4-22 15:05:26编辑过]

--  作者:737182811
--  发布时间:2014/4/22 15:04:00
--  
如此说来,此段代码万一某一个用户没有设置分组,就要报错的。建议狐爸改良啊。
--  作者:737182811
--  发布时间:2014/4/22 15:10:00
--  
谢bin版,问题找出来了。
--  作者:Bin
--  发布时间:2014/4/22 15:12:00
--  
这样判断一下看看

if u.Group isnot nothing then

或者 if u.Group <> ="" then