年前开了一个帖子问这些问题,不过去的人大多以为这是个第三方控件,这次说详细点,这个控件样子象资源管理器左边的那个显示各个驱动器和文件夹的控件,在delphi的Sample面板下。有这么两个问题:1.如何刷新当前选中的节点的上一层节点的内容
比如目录结构这样
第n层
  第n+1层1
  ....
  第n+1层n如果我在资源管理器中在第n+1层中增减了一些文件,现在想通过刷新第n层来反映出这些变化,该如何实现2.每次在SheelTreeView中打开 我的电脑 都要读一下软驱,而且打开速度比较慢,怎么能让他快点

解决方案 »

  1.   

    No.1 ShellTreeView1.Refresh(ShellTreeView1.Selected);
    //or 
    object ShellTreeView1: TShellTreeView
      AutoRefresh = True
    endNo.2 
    procedure TCustomShellTreeView.InitNode(NewNode: TTreeNode; ID: PItemIDList; ParentNode: TTreeNode);
    //....
    begin
    //....
        if Pos('A:', UpperCase(NewNode.Text)) <= 0 then //<<加上这条语句
          if fpShared in Properties then NewNode.OverlayIndex := 0;
        if (otNonFolders in ObjectTypes) and (ShellFolder <> nil) then
          NewNode.HasChildren := GetHasSubItems(ShellFolder, ObjectFlags(FObjectTypes));
    //....
    end;