TreeListView 控件是一个第三方控件,它结合了 ListView 和 TreeView 的功能,因此在 Windows Forms(WinForms)应用程序中非常有用
TreeListView 添加列,可以使用 Columns 属性。例如:treeListView.Columns.Add("Name"); treeListView.Columns.Add("Size"); TreeListView 添加节点,可以使用 Roots 属性。例如:var rootNode = new TreeListViewItem("Root"); rootNode.Children.Add(new TreeListViewItem("Child 1")); rootNode.Children.Add(new TreeListViewItem("Child 2")); treeListView.Roots.Add(rootNode); ImageList 控件。首先,需要将图像添加到 ImageList,然后将其分配给 TreeListView 的 SmallImageList 属性。接下来,可以为每个节点设置 ImageIndex 属性。例如:imageList.Images.Add(Properties.Resources.folderIcon); imageList.Images.Add(Properties.Resources.fileIcon); treeListView.SmallImageList = imageList; var rootNode = new TreeListViewItem("Root", 0); // 0 is the index of the folder icon rootNode.Children.Add(new TreeListViewItem("Child 1", 1)); // 1 is the index of the file icon rootNode.Children.Add(new TreeListViewItem("Child 2", 1)); treeListView.Roots.Add(rootNode); SelectedItemChanged 事件。例如:treeListView.SelectedItemChanged += (sender, e) => { var selectedNode = treeListView.SelectedItem as TreeListViewItem; if (selectedNode != null) { MessageBox.Show($"Selected node: {selectedNode.Text}"); } }; TreeListView 的 OnDrawItem 方法。例如:public class CustomTreeListView : TreeListView { protected override void OnDrawItem(DrawListViewItemEventArgs e) { if (e.Item is TreeListViewItem treeListViewItem) { if (treeListViewItem.Text == "Child 1") { e.Graphics.FillRectangle(Brushes.Yellow, e.Bounds); e.Graphics.DrawString(treeListViewItem.Text, Font, Brushes.Red, e.Bounds.Location); } else { base.OnDrawItem(e); } } } } 这只是 TreeListView 控件的一些基本扩展方法。根据需求,可以进一步自定义该控件的行为和外观。请参阅官方文档以获取更多信息和示例。