CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 361

361

Chương 9: File, thư mục, và I/O

TreeView

rất thích hợp với cách tiếp cận này vì nó cung cấp sự kiện

BeforeExpand

(sự kiện

này phát sinh trước khi một cấp mới được hiển thị). Bạn có thể sử dụng một placeholder (như
dấu hoa thị hay nút rỗng) trong tất cả các nhánh chưa được thêm vào. Điều này cho phép bạn
thêm vào các phần của cây thư mục khi chúng được hiển thị.
Để sử dụng kiểu giải pháp này, bạn cần ba yếu tố sau:

Phương thức

Fill

—thêm một cấp mới vào một thư mục. Bạn sẽ sử dụng phương thức

này để thêm vào các cấp khi chúng được mở rộng.

Phương thức thụ lý sự kiện

Form.Load

—sử dụng

Fill

để tạo cây với cấp đầu tiên.

Phương thức thụ lý sự kiện

TreeView.BeforeExpand

—phản ứng khi người dùng mở

rộng một nút và gọi

Fill

nếu thông tin của thư mục này chưa được thêm.

Dưới đây là phần mã cho form:

using System;

using System.IO;

using System.Drawing;

using System.Windows.Forms;

public class DirectoryTree : System.Windows.Forms.Form {

private System.Windows.Forms.TreeView treeDirectory;

// (Bỏ qua phần mã designer.)

private void Fill(TreeNode dirNode) {

DirectoryInfo dir = new DirectoryInfo(dirNode.FullPath);

// Một ngoại lệ có thể bị ném nếu bạn không có

// đủ quyền thao tác trên file hay thư mục.

// Bạn có thể bắt và bỏ qua ngoại lệ này.

foreach (DirectoryInfo dirItem in dir.GetDirectories()) {

// Thêm nút giả cho thư mục.

TreeNode newNode = new TreeNode(dirItem.Name);

dirNode.Nodes.Add(newNode);

newNode.Nodes.Add("*");

}

}

private void DirectoryTree_Load(object sender, System.EventArgs e) {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.