Я работаю над созданием древовидного представления в C #, в котором должны загружаться каталоги и файлы. TreeView
и каталоги успешно загружены. Мне нужно иметь флажки с каждым узлом дерева, а также я хочу иметь соответствующие значки (например, для каталога - значок папки, а для файлов - значок файла). Когда я пытаюсь это сделать, флажки и значки перекрываются. Ниже приведены некоторые снимки для этого -
Ниже приведен код списка изображений в файле 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;
Проблема заключается вуже объяснили - значки и флажки перекрываются. Пожалуйста, помогите мне в этом. По моим исследованиям я не могу найти решения в интернете.
Заранее спасибо!