0

ImageSet="XPFileExplorer"で Treeview を使用し ました。一連のディレクトリを TreeNodes に、Treeviews ノードである treenodecollection に設定するループを作成しました。これは機能し、ディレクトリの階層を表すツリービューが表示されます。ただし、アイコンはすべて間違っています。コンピューターのアイコン、テキスト ファイルのアイコン、フォルダーのアイコンなどがあります。私の質問は、それらをすべてフォルダ アイコンにする方法です。TreeNodes に ImageUrl を設定する方法があるようですが、独自のイメージを作成したくありません。私はImageSet="XPFileExplorer"によって提供される画像を使用することを好みます 。これは、ノードを作成するために使用している asp とメソッドです。

<asp:TreeView ID="TreeViewfilelist" runat="server" 
            onload="TreeViewfilelist_Load" ImageSet="XPFileExplorer" 
        NodeIndent="15">
            <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
            <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" 
                HorizontalPadding="2px" NodeSpacing="0px" VerticalPadding="2px" />
            <ParentNodeStyle Font-Bold="False" />
            <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" 
                HorizontalPadding="0px" VerticalPadding="0px" />
</asp:TreeView>

コールオンロード

TreeNodeCollection main = TreeViewfilelist.Nodes;
makemainNodes(main, dir);

方法:

protected void makemainNodes(TreeNodeCollection treec, System.IO.DirectoryInfo directory)
    {
        foreach (System.IO.DirectoryInfo g in directory.GetDirectories())
        {               
            TreeNode child = new TreeNode(g.Name);                
            System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(g.FullName);
            makesubNodes(child, dir);
            treec.Add(child);
        } 
    }
protected void makesubNodes(TreeNode treec, System.IO.DirectoryInfo directory)
    {
        foreach (System.IO.DirectoryInfo g in directory.GetDirectories())
        {              
            TreeNode child = new TreeNode(g.Name);
            System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(g.FullName);
            makesubNodes(child, dir);
            treec.ChildNodes.Add(child);
        } 
    }
4

1 に答える 1