foreach(TreeNode node in this.treeView1.Nodes)
                {
                    if (node.Tag == this.listView1.SelectedItems[0].Tag)
                    {
                        this.treeView1.SelectedNode = node;
                    }
调试时this.listView1.SelectedItems[0]为什么不能访问到被双击的listitem,我看网上一些代码他们都是这样访问的啊,还有就是我是为了实现双击listitem进入它的子栏目,谁知道有什么好方法吗。在线等。

解决方案 »

  1.   

    放的就是一个数node的tag是用来标示node的,item的tag也是为了表示它是和前面node相对应的
      

  2.   

    node的tag是object类型的  标示node我一般用node.Name
      

  3.   

    双击肯定是能访问到的this.listView1.SelectedItems[0]
    是不是楼主需要的是listView1.SelectedItems[0].SubItems[i].Tag?
      

  4.   

    if (node.Tag == this.listView1.SelectedItems[0].Tag)
    InvalidArgument=“0”的值对于“index”无效。
    参数名: index
      

  5.   

    调试一下,应该是你粗心,再看看你的程序,你把程序运行时,先选择listview的第一行,这样,再试一试
      

  6.   

    将ListBox的SelectionMode选择为MultiExtended
    this.listBox1.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
      

  7.   

    问题解决了 虽然我不是很明白是怎么回事。我前面有这么个判断 
    if ((int)this.listView1.SelectedItems[0].Tag != -1) 
    但是这个判断能通过而这句话if (node.Tag == this.listView1.SelectedItems[0].Tag) 
    就是接上面的却不能通过,我很是不理解说InvalidArgument=“0”的值对于“index”无效。 
    参数名: index;于是我这样改了:前面定义一个int tag = (int)this.listView1.SelectedItems[0].Tag; 
    然后if ((int)this.listView1.SelectedItems[0].Tag != -1) 
    这个改成 if (tag != -1)这句if (node.Tag == this.listView1.SelectedItems[0].Tag)改成 
    if ((int)node.Tag == tag)就通过了 寒了....