以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎样设置在线、离线用户图标  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110958)

--  作者:jyh7081
--  发布时间:2017/12/13 8:34:00
--  [求助]怎样设置在线、离线用户图标

openqq可将在线、离线用户采用不同颜色的图标进行区分,假如在线图标为“001.ico”,离线图标为“002.ico”,代码怎么写?

谢谢!


--  作者:有点甜
--  发布时间:2017/12/13 8:41:00
--  
内置的openqq聊天窗口的图标?这个是改不了的。
--  作者:有点甜
--  发布时间:2017/12/13 8:46:00
--  

如果是自己做的窗口,可以判断其online属性 http://www.foxtable.com/webhelp/scr/2987.htm

 


--  作者:jyh7081
--  发布时间:2017/12/13 19:45:00
--  

我利用用户组作为根节点,用户名作为子节点,生成目录树,见下图。

怎样根据好友的在线状态,为目录树的子节点适用不同的图标(“在线.ico”或“离线.ico”),请老师帮助改一下加黑部分的代码,谢谢!

 


此主题相关图片如下:image 2.png
按此在新窗口浏览图片

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As WinForm.TreeNode In trv.AllNodes
    Select Case nd.Level
        Case  0   \'组节点
            nd.Ic
        Case  1   \'用户名节点
            For Each bd As QQBuddy In QQClient.Buddies \'显示好友名和在线状态


                 If bd.name = nd.name Then
                    If bd.Online Then
                        nd.IconFile = " d: \\在线.ico"
                    Else
                        nd.IconFile = " d: \\离线.ico"
                    End If
                End If

            Next
    End Select
Next


[此贴子已经被作者于2017/12/13 19:51:17编辑过]

--  作者:有点甜
--  发布时间:2017/12/13 20:23:00
--  

Dim bd As QQBuddy = QQClient.Buddies(nd.parentNode.name & "." & nd.Name)
If bd.Online Then
    nd.IconFile = " d: \\在线.ico"
Else
    nd.IconFile = " d: \\离线.ico"
End If

[此贴子已经被作者于2017/12/13 20:22:59编辑过]

--  作者:jyh7081
--  发布时间:2017/12/13 21:05:00
--  

老师,提示“给定关键字不在字典中”(图片已放入Images),TimerTick代码如下:

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As WinForm.TreeNode In trv.AllNodes
    Select Case nd.Level
        Case  0   \'组节点
            nd.Ic
        Case  1   \'用户名节点
            For Each bd As QQBuddy In QQClient.Buddies \'显示好友名和在线状态     ’去掉这句用下句也不行
                \'Dim bd As QQBuddy = QQClient.Buddies(nd.parentNode.Name & "." & nd.Name)
                bd = QQClient.Buddies(nd.parentNode.Name & "." & nd.Name)
                If bd.Online Then
                    nd.Ic
                Else
                    nd.Ic
                End If
            Next
    End Select
Next


--  作者:有点甜
--  发布时间:2017/12/13 21:47:00
--  

1、你的好友的用户名是什么样的?弹出看看

 

For Each bd As QQBuddy In QQClient.Buddies

    output.show(bd.Name)

Next

 

2、你目录树的节点怎么组合,可以得到那样的名称?


--  作者:jyh7081
--  发布时间:2017/12/13 22:08:00
--  

1、bd.Name     弹出格式为:xx团队.姓名

 

2、目录树根节点:xx团队;    次节点:姓名;   

     生成目录树的代码:

    Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
    For Each u As UserInfo In Users
        If u.Type = UserTypeEnum.User Then \'排除管理员和开发者
            If trv1.Nodes.Contains(u.Group) = False Then
                trv1.Nodes.Add(u.Group)
            End If
            trv1.Nodes(u.Group).Nodes.Add(u.Name)
        End If
    Next

 

 

nd.parentNode.Name & "." & nd.Name  bd.Name    看着是匹配的,不知道哪里问题?

 



--  作者:有点甜
--  发布时间:2017/12/13 22:13:00
--  

弹出这个值看看

 

msgbox(nd.parentNode.Name & "." & nd.Name)

 

下面的代码直接写,不需要写循环

 

Dim bd As QQBuddy = QQClient.Buddies(nd.parentNode.name & "." & nd.Name)
If bd.Online Then
    nd.IconFile = " d: \\在线.ico"
Else
    nd.IconFile = " d: \\离线.ico"
End If


--  作者:jyh7081
--  发布时间:2017/12/13 22:45:00
--  

msgbox(nd.parentNode.Name & "." & nd.Name)     弹出格式为:xx团队.姓名

跟   bd.Name     弹出的格式一样。

 

代码直接写也一样提示“给定关键字不在字典中”。