01/10/2018, 17:27
Thêm Node và ChildNode vào TreeView trong C#
Góc Kinh Nghiệm sẽ trình bày cách hiển thị một danh sách các thiết bị trên treeview, tương ứng với mỗi thiết bị thì nó thuộc từng loại thiết bị nhất định Treeview sẽ gồm 3 cấp: Cấp 1: chứa 1 node gốc duy nhất Cấp 2: chứa thông tin loại thiết bị (thuộc node gốc) Cấp 3: chứa thông tin thiết ...
Góc Kinh Nghiệm sẽ trình bày cách hiển thị một danh sách các thiết bị trên treeview, tương ứng với mỗi thiết bị thì nó thuộc từng loại thiết bị nhất định
Treeview sẽ gồm 3 cấp:
- Cấp 1: chứa 1 node gốc duy nhất
- Cấp 2: chứa thông tin loại thiết bị (thuộc node gốc)
- Cấp 3: chứa thông tin thiết bị (thuộc node loại thiết bị)
Giả sử, chương trình có các biến sau:
- TreeView tên trvDevice
- ImageList tên imgList
- Các ảnh “Root.png”, “Device.png” và “KindOfDevice.png” được đặt sẵn trong ổ D:
- Danh sách loại thiết bị, và 2 danh sách thiết bị thuộc 2 loại thiết bị đầu tiên
Chú ý: 3 cấp trên TreeView sẽ được hiển thị bởi 3 icon tương ứng trong ImageList
Ví dụ minh họa được viết trên VS2005:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace MyProject.TreeView { public partial class FormDemoTreeView : Form { public FormDemoTreeView() { InitializeComponent(); InitData(); } private void InitData() { // Hiển thị checkbox cho các node trvDevice.CheckBoxes = true; // Khởi tạo danh sách các ảnh làm icon ImageList imgList = new ImageList(); imgList.Images.Add(Image.FromFile("D:/Root.png")); imgList.Images.Add(Image.FromFile("D:/Device.png")); imgList.Images.Add(Image.FromFile("D:/KindOfDevice.png")); trvDevice.ImageList = imgList; } private void FormDemoTreeView_Load(object sender, EventArgs e) { trvDevice.Nodes.Clear(); // Loại thiết bị string[] kindOfDevice = { "Laptop", "Điện thoại", "Máy quạt", "Tủ Lạnh" }; // Thiết bị thuộc loại thiết bị Laptop và Điện thoại string[] deviceOfLaptop = { "Accer 125", "HP CQ24", "Toshiba G34" }; string[] deviceOfPhone = { "Samsung 353344", "Nokia N97" }; // Node gốc đầu tiên TreeNode rootNode = new TreeNode("Danh sách thiết bị"); rootNode.ImageIndex = 0; // Lấy hình thứ nhất trong ImageList (hình "Root.png") rootNode.Expand(); // for (int i = 0; i < kindOfDevice.Length; i++) { TreeNode childNode = new TreeNode(kindOfDevice[i].ToUpper()); childNode.ImageIndex = 1; // Lấy hình thứ 2 trong ImageList (hình "Device.png") childNode.Expand(); if (i == 0) { AddChildNode(childNode, deviceOfLaptop); } else if (i == 1) { AddChildNode(childNode, deviceOfPhone); } rootNode.Nodes.Add(childNode); } this.trvDevice.Nodes.Add(rootNode); } private void AddChildNode(TreeNode pParentNode, string[] pNodesList) { if (pNodesList == null) return; for (int i = 0; i < pNodesList.Length; i++) { TreeNode childNode = new TreeNode(pNodesList[i]); childNode.Expand(); childNode.ImageIndex = 2; // Lấy hình cuối cùng trong ImageList (hình "KindOfDevice.png") pParentNode.Nodes.Add(childNode); } } } }
Chạy chương trình, Góc Kinh Nghiệm thu được kết quả như hình bên dưới:
Góc Kinh Nghiệm chúc các bạn thành công