1. DEMO TREE VIEW
Chúng ta sẽ lần lượt mổ xẻ tree view qua ví dụ bên dưới. Chương trình này có chức năng duyệt tìm thư mục trong máy tính. Bên phải là 1 tree view, bên trái bao gồm 2 textBox và 2 button. Khi bắt đầu khởi chạy chương trình sẽ load các thư mục ổ đĩa vào tree view, mỗi node sẽ ứng với 1 ổ đĩa. Ban đầu mỗi node sẽ được gán một node giả để xuất hiện dấu + phía trước. Mỗi khi có event click vào mỗi node thì chương trình sẽ load các thư mục con của node tương ứng tạo, và tạo các node mới tại node đó. Như vậy chúng ta sẽ load các thư mục lần lượt khi vào đúng thư mục cần load, như vậy sẽ hiệu quả hơn rất nhiều so với thao tác dùng đệ quy load tất cả thư mục trên máy tính, như vậy sẽ rất lâu vì trên máy tính có rất rất nhiều thư mục khác nhau!!!
Tại textBox bên dưới mỗi khi bạn nhấn chọn một thư mục bất kỳ tại đó sẽ hiển thị đúng đường dẫn thư mục đó.
Ngoài ra còn có chức năng add và remove tại node đang chọn.
2. PHÂN TÍCH CODE
Trong code bên dưới khi Form_Load, chương trình sẽ duyệt tìm tát cả các thư mục chính đưa vào mảng các chuỗi drives. Sau đó tương ứng với mỗi thư mục chính sẽ thêm một Node giả để nhằm cho biết bên trong các thư mục chính còn có thư mục con. treeView1.Nodes.Add() dùng để Add các node gốc vào treeview; Còm tn.Node.Add() dùng để Add thêm node tại node tn. Phương thức Add() được overLoad thành 7 phương thức khác nhau giúp bạn có nhiều các để thêm Node với cho treeview.
Tiếp đến cần xét là sự kiện BeforeExpand để load các thư mục con khi nhấn vào một thư mục bất kỳ. Ta xem lại ở phần trên khi ta thêm node giả cho thư mục để biết bên trong còn có thư mục con, bây giờ khi cần mở thư mục đó ra ta cần phải xóa node giả đó bằng phương thức Remove tại vị trí 0. Tiếp đó dùng mảng các chuỗi dirs để lưu các thư mục con và tiến hành sắp xếp chúng. Và sau đó lại thêm node cho treeview, rồi tại mỗi node con ta tiếp tục kiểm tra xem có thư mục con bên trong hay không để thêm node giả cho nó.
LƯU Ý:
Trong quá trình xử lý load tự động thư mục cần có cơ chế quản lý lỗi phát sinh,vì quá trình truy xuất thường hay dính lỗi không tìm thấy file hoặc không có quyền truy xuất nội dung.
Phần cuối cùng là 2 phương thức Add, Remove node và thuộc tính Node.FullPath để trả về đường dẫn của thư mục tại node đang chọn.
» Tin mới nhất:
» Các tin khác: