How to customize WinForms MultiCoulumnTreeView like FileExplorer?
Customize the MultiColumnTreeView
In MultiColumnTreeView, you can load the files as you load in File Explorer, by using DriveInfo, DirectoryInfo class and by handling NodeMouseDoubleClick event. The following code example is used to get the files from directories.
C#
//To get directory
DriveInfo drive = new DriveInfo(e.Node.Text);
DirectoryInfo dir = drive.RootDirectory;
//To get all files
foreach (FileInfo fi in dir.GetFiles())
{
TreeNodeAdv item = new TreeNodeAdv(fi.Name);
item.ShowPlusMinus = false;
e.Node.Nodes.Add(item);
}
//To open selected files
void multiColumnTreeView1_NodeMouseDoubleClick(object sender, MultiColumnTreeViewAdvMouseClickEventArgs e)
{
if (e.Node.Text.Contains("."))
System.Diagnostics.Process.Start(e.Node.FullPath);
}
VB
'To get directory
Dim drive As New DriveInfo(e.Node.Text)
dir = drive.RootDirectory
'To get files
For Each fi As FileInfo In dir.GetFiles()
Dim item As New TreeNodeAdv(fi.Name)
item.ShowPlusMinus = False
e.Node.Nodes.Add(item)
Next fi
'To open selected files
Private Sub multiColumnTreeView1_NodeMouseDoubleClick(ByVal sender As Object, ByVal e As MultiColumnTreeViewAdvMouseClickEventArgs)
If e.Node.Text.Contains(".") Then
System.Diagnostics.Process.Start(e.Node.FullPath)
End If
End Sub
The following screenshot illustrates the output.

Figure 1: Files loaded as loaded in File Explorer