在c#树状视图中,复选框和“图像列表”图标重叠,如何解决此问题?

我正在用C#开发树形视图,其中要加载目录和文件。 TreeView和目录已成功加载。我需要在每个树节点上都具有复选框,并且还需要具有相应的图标(例如,用于目录-文件夹图标,对于文件-文件图标)。当我尝试这样做时,复选框和图标会重叠。以下是一些快照-

在c#树状视图中,复选框和“图像列表”图标重叠,如何解决此问题?

以下是Form1.Designer.cs文件中的“图像列表”代码:

this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0,"Folder_256x256.png");
this.imageList1.Images.SetKeyName(1,"document-management-big.png");

以下是Form1.cs文件中的目录和文件加载代码:

public void LoadDirectory(string Dir)
{
    DirectoryInfo di = new DirectoryInfo(Dir);
    //MessageBox.Show(di.Name.ToString());
    //Setting ProgressBar Maximum Value
    progressBar1.Maximum = Directory.GetFiles(Dir,"*.*",SearchOption.AllDirectories).Length + Directory.GetDirectories(Dir,SearchOption.AllDirectories).Length;
    TreeNode tds = treeView1.Nodes.Add(di.Name);
    tds.Tag = di.FullName;
    tds.StateImageIndex = 0; //Code for loading/linking with icon
    LoadFiles(Dir,tds);
    LoadSubDirectories(Dir,tds);
}

private void LoadSubDirectories(string dir,TreeNode td)
{
    // Get all subdirectories
    string[] subdirectoryEntries = Directory.GetDirectories(dir);
    // Loop through them to see if they have any other subdirectories
    foreach (string subdirectory in subdirectoryEntries)
    {

        DirectoryInfo di = new DirectoryInfo(subdirectory);
        TreeNode tds = td.Nodes.Add(di.Name);
        tds.StateImageIndex = 0; //Code for loading/linking with icon
        tds.Tag = di.FullName;
        LoadFiles(subdirectory,tds);
        LoadSubDirectories(subdirectory,tds);
        UpdateProgress();

    }
}

private void LoadFiles(string dir,TreeNode td)
{
    string[] Files = Directory.GetFiles(dir,"*.*");

    // Loop through them to see files
    foreach (string file in Files)
    {
        FileInfo fi = new FileInfo(file);
        TreeNode tds = td.Nodes.Add(fi.Name);
        tds.Tag = fi.FullName;
        tds.StateImageIndex = 1; //Code for loading/linking with icon
        UpdateProgress();
    }
}

通过在CheckBox文件中编写代码,可以直接在TreeView中启用Form1.Designer.cs

this.treeView1.CheckBoxes = true;

问题已经得到解释-图标和复选框重叠。请帮助我。根据我的研究,互联网上没有任何解决方案。

谢谢!

mumu1514 回答:在c#树状视图中,复选框和“图像列表”图标重叠,如何解决此问题?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3138919.html

大家都在问