就是我在treeview 中预先定义了一些节点,这些节点的字节点我通过数据库获得,我不想在treeview中显示获得的节点(这些节点下面可能有也可能没有子节点),我只想在listview中显示出来,不然的话treeview中会显示的很长,不想这样左右这方面的原因!还请帮忙,如有帮助,马上转帐:)

解决方案 »

  1.   

    象sqlserver中,展开节点到tables 的时候就不会再展开,而是把表显示再有变得listview中!
      

  2.   

    不好意思,是显示再右边的listview中!还有,顺便问一下,怎么对不同的节点显示不同的右键内容!
      

  3.   

    Treeview有text和tag属性。可以在事件中取得鼠标选中的节点,然后根据选中的节点的不同的级别和text/tag分别显示不同的内容!
      

  4.   

    你可以介绍一下tag的具体内容么,怎么使用?谢谢!
      

  5.   

    private string GetLogicalPath(TreeNode tn)
    {
      // 取得该节点在树中的路径
      string strPath = tn.FullPath;
      // 取得该路径中最后一个':'字符的Index
      int idx = strPath.LastIndexOf(':');
      // 返回物理地址
      return strPath.Substring(idx - 1);
    }// 初始化节点目录的子目录
    void AddDirs(TreeNode tn)
    {
      tn.Nodes.Clear();  // 取得当前目录节点的物理地址
      DirectoryInfo dirinfo = new DirectoryInfo(GetLogicalPath(tn));  DirectoryInfo[] adirinfo;  try
      {
        if(tn.Text == "A:\\")return;
        adirinfo = dirinfo.GetDirectories();
      }
      catch{return;}  foreach(DirectoryInfo di in adirinfo)
      {
        TreeNode tnDir = new TreeNode(di.Name,2,3);
        tn.Nodes.Add(tnDir);
      }
    }public void AddFiles(TreeNode tn)
    {
      if(tn.Text == "我的电脑")return;  listView1.Items.Clear();  // 取得当前目录节点的物理地址
      DirectoryInfo dirinfo = new DirectoryInfo(GetLogicalPath(tn));
      // 保存被选定的目录的路径
      strSelDirPath = dirinfo.FullName;
      // 定义一个文件信息数组
      FileInfo[] afileinfo;
      try
      {// 取得该路径下所有文件名
        afileinfo = dirinfo.GetFiles();
      }
      catch{return;}  MyList.Images.Clear();
      int i = 0;
      foreach(FileInfo fileinfo in afileinfo)
      {
        // 运行时允许运行其他程序
        Application.DoEvents();
        try
        {
          // 读取图片
          Image MyImage = Image.FromFile(fileinfo.FullName);
          // 将图片增加到列表中
          MyList.Images.Add(MyImage);
          // 增加图片对象
          listView1.Items.Add(fileinfo.Name,i);
          i++;      // 在选中目录改变时跳出循环
          if(tn != tnSelected) break;
        }
        catch
        {// 遇到不是图片文件就处理下一个文件
          continue;
        }
      }
    }private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
        tnSelected = treeView1.SelectedNode;
        AddFiles(treeView1.SelectedNode);
    }//以上代码是我最近编的一个看图软件里抄下来的
    //代码的功能是当选中一个节点时,向listview里
    //添加图片Items
    //我能帮你的就这么多了,代码看不懂可以问:)
      

  6.   

    谁可以帮我解释一下tag是什么东东么,简单的说的怎么用?谢谢!
      

  7.   

    tag就是一个标签
    你有一个东西,你怕以后忘了它是做什么用的了,你就贴个标签,说明一下,以后用的时候看下标签就知道了。
    所以,TAG是一个OBJECT,你在一个树节点的标签填入一个标记值,如1
    以后,你用到这个节点,你就可以从它的TAG中得到这个1,这可以帮组你做很多事
      

  8.   

    tag其实没有什么用,可以用来在每个TreeNode里添加一些附加信息呵呵,我还是个学生呢,大家一起努力!
      

  9.   

    嘿嘿, trier2003(在上海)
    我怎么觉得你不太会利用MSDN?
      

  10.   

    trier2003(在上海)
         研究生呀,这种问题以后还是少问,:-)
        不过人都是要一步步过来的!
      

  11.   

    try
    {
    nodes.Clear();

    TreeNode tParent=new TreeNode();
    tParent.Text="文件";
    tParent.ImageUrl =FOLDER_IMAGE; // 文件夹
    tParent.ExpandedImageUrl =EXPENDED_FOLDER_IMAGE;
    tParent.SelectedImageUrl =SELECTED_FOLDER_IMAGE;

    if(nList!=null)
    {
    for( int i =0;i<nList.Count;i++)
    {
    XmlElement element_main = (XmlElement)nList.Item(i);
    TreeNode node=new TreeNode();
    node.ID =element_main.GetAttribute("FolderID");
    node.Text =element_main.GetAttribute("FolderName");
    node.ImageUrl =FOLDER_IMAGE; // 文件夹
    node.ExpandedImageUrl =EXPENDED_FOLDER_IMAGE;
    node.SelectedImageUrl =SELECTED_FOLDER_IMAGE;
    tParent.Nodes.Add(node);
    }
    }
    nodes.Add(tParent);
    }
    catch
    {
    }