我用的ini文件如下内容:
[192.168.0.105]
DataGroupIP=236.168.57.5
CommandGroupIP=236.168.57.5
DataGroupPort=5609
CommandGroupPort=5610
SubnetMask=255.255.255.0
Gateway=10.5.1.254
DeviceType=1
LastConnectPlayer=2
LastConnectChannel=1
Description=wwww
Cannel1Description=AAAA
Cannel2Description=BBBB
Cannel3Description=CCCC
Cannel4Description=DDDD
UseChannel1=1
UseChannel2=1
UseChannel3=1
UseChannel4=1
Cannel1Controller=PELCO-D1
Cannel2Controller=PELCO-D1
Cannel3Controller=PELCO-D1
Cannel4Controller=PELCO-D1
我要做的是软件运行将IP地址([192.168.0.105])下的极端内容显示在TreeView控件中(显示美容有:Description 显示为父节点;Cannel1Description、Cannel2Description、Cannel3Description、Cannel4Description显示为子节点),问题是我在TreeView控件中双击子节点的事件中利用什么信息取出ini文件里该段内容的其它信息,并加以利用。(如取出DataGroupIP、DataGroupPort等信息)

解决方案 »

  1.   

    Private Type MyIP
        DataGroupIP As String
        DataGroupPort As String
        '………
    End Type
        
    public SUB AddNode()
        Dim MainKey As String
        Dim tepMyIP As MyIP
        Dim tNode As Node
        tepMyIP.DataGroupIP=236.168.57.5
        tepMyIP.DataGroupPort = 5609
        '……
        Set tNode = TreeView1.Nodes.Add(, , , "192.168.0.105")
        tNode.Tag = tepMyIP
    end subPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
        Dim tMyIp As MyIP
        tMyIp = Node.Tag
        MsgBox tMyIp.DataGroupIP & "_" & tMyIp.DataGroupPort
    End Sub
      

  2.   

    如果不用数组就合理利用好tag这个属性,可以在里面存放对象,存放任何数据类型的值,这里用自定义类型就刚好
      

  3.   

    你这种方法是可以做到,但是ini文件理由很多段IP地址不同的信息,关键是怎么获得TreeView中的信息,又怎么通过获得的信息来判断这些信息是那个IP地址下的信息
    如下:
    [192.168.0.105]
    DataGroupIP=236.168.57.5
    CommandGroupIP=236.168.57.5
    DataGroupPort=5609
    CommandGroupPort=5610
    SubnetMask=255.255.255.0
    Gateway=10.5.1.254
    DeviceType=1
    LastConnectPlayer=2
    LastConnectChannel=1
    Description=wwww
    Cannel1Description=AAAA
    Cannel2Description=BBBB
    Cannel3Description=CCCC
    Cannel4Description=DDDD
    UseChannel1=1
    UseChannel2=1
    UseChannel3=1
    UseChannel4=1
    Cannel1Controller=PELCO-D1
    Cannel2Controller=PELCO-D1
    Cannel3Controller=PELCO-D1
    Cannel4Controller=PELCO-D1[192.168.0.101]
    DataGroupIP=236.168.57.1
    CommandGroupIP=236.168.57.1
    DataGroupPort=5601
    CommandGroupPort=5602
    SubnetMask=255.255.255.0
    Gateway=10.5.1.254
    DeviceType=1
    LastConnectPlayer=
    LastConnectChannel=
    Description=wewe
    Cannel1Description=asd
    Cannel2Description=SDas
    Cannel3Description=asd
    Cannel4Description=
    UseChannel1=1
    UseChannel2=1
    UseChannel3=1
    UseChannel4=1
    Cannel1Controller=PELCO-D1
    Cannel2Controller=PELCO-D1
    Cannel3Controller=PELCO-D1
    Cannel4Controller=PELCO-D1
      

  4.   

    关键是怎么获得TreeView中的信息???? 这是什么意思?你点击一个Node就可以获得这个Node的所以信息呀,我不大明白你的意思建立Node的时候你可以这样:
    Set tNode = TreeView1.Nodes.Add(, ,"MainIP" & i , "Description")  '加父
    Set tNode = TreeView1.Nodes.Add("MainIP",4 , "Cannel1Description" & i, "AAAA") '加子Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
        Dim tMyIp As MyIP
        tMyIp = Node.Tag
        if instr(1,Node.Key ,MainIP)<>"" then
           tMyIp = Node.Tag    '点了一个父结点
        else
           tMyIp = Node.Parent.Tag  点了一个子结点
        end if
        MsgBox tMyIp.DataGroupIP & "_" & tMyIp.DataGroupPort
    End Sub
      

  5.   

    我知道可以获得Node, 我的意思是说怎么通过Node来判断这个值是属于ini文件里那一段信息里的,是[192.168.0.105]里的还是[192.168.0.101]里的
      

  6.   

    Private Type MyIP
          
        MainIP as string           '在自定义结构中加一个主IP ,存放你想知道的东西嘛
                                   '这个自义结构你可以随便添加自己的项
        DataGroupIP As String
        DataGroupPort As String
        '………
    End TypePrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
        Dim tMyIp As MyIP
        tMyIp = Node.Tag
        if instr(1,Node.Key ,MainIP)<>"" then
           tMyIp = Node.Tag    '点了一个父结点
        else
           tMyIp = Node.Parent.Tag  点了一个子结点
        end if
        MsgBox tMyIp.MainIP   '这不就可以取192.168.0.105 或 192.168.0.101了吗?
    End Sub你是说你怎么从ini中读取 [192.168.0.105]  这个吗?
      

  7.   

    在新建Node的时候把 把主IP存在自定义结构的MainIP中,这个父结点中就保存了主IP的信息了
      

  8.   

    我明白你说的意思,但是实际上会友很多组主IP,结构提要定义成数组才行,我的问题是,我怎么判断 node 的值是那一个主IP下的内容。
      

  9.   

    [192.168.0.105] 
    ………
    ………
    ………
    [192.168.0.101]有很多组这个是吧?192.168.0.105 这些主键除了保存在INI中,还可以从哪里读取吗?
      

  10.   

    可以在程序启动的时候,把ini里的内容读到自定义结构体数阻里,然后只访问这个结构体数组就可以了。别的地方就读不到了。
      

  11.   

    www.eva-ltd.com/ini.rar 
    这个小工程你下载看一下咯,我不知道可不可以满足你最低的要求!
      

  12.   

    非常感谢对我的帮助虽然我还没有仔细看程序,但从运行看应该给我解决问题了,能不能留个
    E-MAIL或者QQ号阿,有问题我再请教。我的是[email protected]  87950342