Giới thiệu.
Tôi hy vọng, bạn thấy các Phiên hướng dẫn vài tuần trước của Microsoft TreeView và ImageList Control thú vị và sẵn sàng tham gia tập tiếp theo. Nếu bạn vẫn chưa xem qua các Bài viết trước đó thì các Liên kết được đưa ra bên dưới.
- Hướng dẫn điều khiển Chế độ xem dạng cây của Microsoft
- Tạo Menu Truy cập với Điều khiển Chế độ xem Dạng cây
- Gán hình ảnh cho các nút chế độ xem dạng cây
Bài đăng này là phần tiếp theo của tập tuần trước.
Tuần trước, chúng tôi đã tạo một vài hình ảnh và tải chúng lên Danh sách hình ảnh Kiểm soát bằng cách sử dụng Mã VBA, cho Microsoft Tree View Control. Tham chiếu điều khiển ImageList đã được chuyển đến Thuộc tính ImageList của Điều khiển Chế độ xem dạng cây. Sau các bước này, chúng tôi có thể sử dụng trực tiếp Tên khóa của Hình ảnh hoặc Số chỉ mục dưới dạng Node [ Hình ảnh] và [Hình ảnh đã chọn] Thông số trong Nodes.Add () Phương pháp của Microsoft Tree View Object. Với sự hỗ trợ của cả hai Điều khiển này, chúng tôi có thể tạo một Menu dự án Microsoft Access đẹp mắt, có các mục menu trong cấu trúc phân cấp với các đường dạng cây và mục menu hình ảnh đẹp mắt.
Biểu mẫu chạy thử tuần trước với hình ảnh nút.
Hình ảnh Menu Dự án Truy cập của tuần trước được cung cấp bên dưới, với Hình ảnh nút và Đường cây.
Mã VBA để tải hình ảnh lên kiểm soát danh sách hình ảnh.
Sau đây là Mã VBA, mà chúng tôi đã sử dụng để tải hình ảnh lên các nút đối tượng ImageList:
Dim tvw As MSComctlLib.TreeView Const KeyPrfx As String = "X" Dim objimgList As MSComctlLib.ImageList Private Sub CreateImageList() Dim strPath As String 'Initialize Tree View Object Set tvw = Me.TreeView0.Object 'Clear the Tree View Nodes, if any. tvw.Nodes.Clear 'Initialize ImageList Object Set objimgList = Me.ImageList0.Object ’the images must be saved in database path strPath = CurrentProject.Path & “\” With objimgList.ListImages 'Key Names are Case sensitive. .Add , "FolderClose", LoadPicture(strPath & "folderclose2.jpg") .Add , "FolderOpen", LoadPicture(strPath & "folderopen2.jpg") .Add , "ArrowHead", LoadPicture(strPath & "arrowhead.bmp") .Add , "LeftArrow", LoadPicture(strPath & "LeftArrow.bmp") .Add , "RightArrow", LoadPicture(strPath & "RightArrow2.bmp") End With With tvw .ImageList = objimgList End With End Sub
Trong khi trình bày Mã trên, tôi đã đề cập rằng có một cách dễ dàng hơn để tải hình ảnh lên ImageList Control mà không cần Mã VBA. Bên cạnh đó, tôi đã hứa sẽ chia sẻ các Hình ảnh, mà tôi đã sử dụng trong các nút Access Menu demo ở trên. Chúng tôi sẽ đạt được điều đó trong một thời gian ngắn.
Chúng tôi không chỉ đơn giản tạo ra một số hình ảnh và sử dụng chúng. Tuy nhiên, chúng tôi đã tạo một số hình ảnh có ý nghĩa cho Menu Dự án Truy cập dựa trên Chế độ xem dạng cây của chúng tôi.
Lấy trường hợp của hình ảnh thư mục cấp cơ sở. FolderClose kiểu hình ảnh được sử dụng cho chế độ xem bình thường của Nút cấp gốc trong khi ẩn tất cả các Nút con của nó khỏi chế độ xem. Khi người dùng nhấp vào Nút cấp độ gốc, Mở thư mục hình ảnh xuất hiện và hiển thị các nút con của nó. Nhấp chuột thứ hai vào nút sẽ không thay đổi Hình ảnh thành chế độ xem bình thường, trong khi nó có tiêu điểm, nhưng các nút con có thể biến mất khỏi chế độ xem, tùy thuộc vào TreeView0_NodeClick () Mã thủ tục sự kiện.
Tương tự, các nút con có LeftArrow hướng về bên trái hình ảnh ở chế độ xem bình thường và hình ảnh lớn hơn một chút RightArrow , trỏ sang phải, khi được Nhấp. Các từ được đánh dấu là Tên chính được sử dụng trong điều khiển ImageList. Hành động nhấp chuột sẽ mở ra Biểu mẫu , Báo cáo, hoặc Macro , tùy thuộc vào Node con được chọn.
Kiểm soát ImageList trên Biểu mẫu.
Danh sách hình ảnh Kiểm soát được đánh dấu trên Chế độ xem thiết kế của frmMenu ở trên Mẫu được cung cấp dưới đây để tham khảo:
Trang thuộc tính kiểm soát ImageList.
Hình ảnh trang thuộc tính của ImageList được đưa ra dưới đây để tham khảo:
Xem lại Bài tập và Chuẩn bị Tuần trước.
Tuần trước, chúng tôi đã chọn Kích thước hình ảnh 16 x 16 pixel và tải lên các Hình ảnh được yêu cầu vào Điều khiển Danh sách Hình ảnh ở trên bằng cách sử dụng Mã VBA. Sau khi tải lên tất cả các hình ảnh, chúng tôi đã chuyển tham chiếu Đối tượng ImageList đến Thuộc tính danh sách hình ảnh của Điều khiển chế độ xem dạng cây .
Sau các bước trên, chúng tôi có thể sử dụng Số chỉ mục hoặc Khóa-Giá trị hình ảnh trong Thêm () tham số phương thức của các nút Chế độ xem dạng cây.
Chúng tôi chưa chỉ định tham số đầu tiên của phương thức ImageList’s Add (). Tuy nhiên, chính Phương thức Add () sẽ chèn Số chỉ mục cho mỗi hình ảnh, vào Điều khiển danh sách hình ảnh. Hãy nhớ rằng khi bạn nhập Khóa giá trị vào [Hình ảnh], [Hình ảnh được chọn] của phương pháp Nodes.Add () Thông số đó là Phân biệt chữ hoa chữ thường . Sẽ tốt hơn khi bạn nhập các giá trị Khóa vào Khóa của ImageList Control Văn bản Hộp, với các chữ cái viết thường.
Bây giờ, như tôi đã hứa sẽ chỉ ra cách dễ dàng để tải Hình ảnh vào ImageList Control. Nó đơn giản như chọn tất cả các Hình ảnh được yêu cầu, từng hình ảnh một, từ đĩa của bạn theo cách thủ công và thêm chúng vào Danh sách hình ảnh Kiểm soát, không có bất kỳ mã VBA nào.
Bên cạnh đó, bạn có thể chia sẻ Điều khiển Danh sách Hình ảnh với các Dự án khác, bằng cách chỉ cần Sao chép và Dán Điều khiển Danh sách Hình ảnh vào một Biểu mẫu Dự án khác, với tất cả các hình ảnh còn nguyên vẹn. Sau đó, tất cả những gì bạn phải làm là sử dụng Khóa-Giá trị hoặc Số chỉ mục trong phương thức Add () của Nút điều khiển TreeView.
Nếu bạn đã tải xuống Cơ sở dữ liệu demo từ Bài đăng của tuần trước thì hãy mở ProjectMenuV21.accdb . Chúng tôi đã lưu một bản sao của Biểu mẫu frmMenu với Tên mới frmMenu2 .
Thêm Kiểm soát Danh sách Hình ảnh trên Biểu mẫu frmMenu2.
-
Mở biểu mẫu frmMenu2 trong Chế độ xem thiết kế.
-
Chèn Kiểm soát danh sách hình ảnh của Microsoft từ Danh sách điều khiển Activex, ở đâu đó trên không gian trống trên Biểu mẫu frmMenu2.
-
Thay đổi Tên của nó Giá trị thuộc tính thành ImageList0.
-
Nhấp chuột phải vào Điều khiển Danh sách Hình ảnh, đánh dấu Đối tượng ImageListCtrl Tùy chọn , trên menu được hiển thị và chọn Thuộc tính .
-
Chọn kích thước hình ảnh đặt trước 16 x 16 pixel Tùy chọn, trên Thuộc tính Chung Chuyển hướng. Điều quan trọng là bạn phải chọn một trong các tùy chọn này trên Chung Tab trước, trước khi thêm bất kỳ Hình ảnh nào vào Hình ảnh Tab.
-
Chọn Hình ảnh Chuyển hướng. Thuộc tính Tab Hình ảnh trông giống như Hình ảnh sau:
-
Nhấp vào nút Chèn ảnh Nút lệnh, tìm folder_closed hình ảnh mẫu (nếu bạn có hoặc chọn hình ảnh bạn đã chuẩn bị trước đó), bạn đã tạo để chạy thử vào tuần trước, hãy chọn nó và nhấp vào Mở Nút lệnh.
Điều khiển ImageList sẽ giống như hình dưới đây, sau khi chèn hình ảnh đã chọn.
-
Ba điều khiển Hộp văn bản: Chỉ mục , Chìa khóa, và Thẻ hiện đã được kích hoạt. Chỉ mục kiểm soát có Giá trị chỉ mục 1 tự động chèn vào nó.
-
Nhập Văn bản folder_close hoặc bất kỳ Khóa-giá trị nào bạn muốn sử dụng trong các tham số của Phương thức Add () của điều khiển Chế độ xem dạng cây, trong Khóa Điều khiển Hộp văn bản. Loại dữ liệu của nó phải là Loại chuỗi và là duy nhất trong số tất cả các Giá trị chính của hình ảnh.
-
Thẻ có thể được sử dụng để ghi lại một số thông tin hữu ích, chẳng hạn như Tên đường dẫn của Hình ảnh.
-
Thêm tất cả các Hình ảnh cần thiết từ đĩa của bạn, lần lượt và nhập các Giá trị Chính thích hợp trong điều khiển Văn bản Chính, cho tất cả các Hình ảnh bạn tải lên. Sử dụng các giá trị Chính đơn giản, có ý nghĩa và dễ ghi nhớ.
-
Nếu bạn muốn xóa một số hình ảnh khỏi điều khiển, hãy chọn Hình ảnh đó và nhấp vào Xóa hình ảnh.
-
Khi tải xong Hình ảnh, hãy nhấp vào Áp dụng Nút lệnh và sau đó nhấp vào OK để đóng Danh sách hình ảnh Kiểm soát.
Lưu ý: Hãy nhớ rằng bạn đã thêm tất cả các Hình ảnh, sau khi chọn Hình ảnh Kích thước 16 x 16 pixel trên General Chuyển hướng. Sau khi tải lên hình ảnh, bạn không thể thay đổi Kích thước Hình ảnh trên Tab Chung. Nếu bạn muốn một tùy chọn Kích thước Hình ảnh khác, sau khi tải hình ảnh lên, bạn phải xóa tất cả Hình ảnh trước tiên. Sau đó, chỉ bạn mới có thể chọn một tùy chọn Kích thước hình ảnh khác và sau đó lặp lại quá trình tải lên một lần nữa.
Kiểm soát Danh sách Hình ảnh với nhiều Hình ảnh hơn:
-
Trong trường hợp bạn không chắc mình đã nhập Khóa-Giá trị nào cho một Hình ảnh cụ thể, hãy nhấp vào Hình ảnh để hiển thị Khóa-Giá trị trong Khóa Hộp văn bản.
-
Sau khi tải lên tất cả các hình ảnh cần thiết vào điều khiển, chúng vẫn nằm trong Điều khiển danh sách hình ảnh. Nếu bạn cần Hình ảnh tương tự trong một số Dự án khác, bạn có thể tạo bản sao của Điều khiển danh sách hình ảnh ở bất kỳ đâu bạn muốn hoặc chia sẻ Biểu mẫu / Cơ sở dữ liệu với những người khác, bằng hình ảnh. Bạn có thể thêm nhiều hình ảnh theo cách này từ một vị trí mới.
-
Sau khi tải lên tất cả Hình ảnh, chúng tôi cần chuyển Tham chiếu điều khiển ImageList sang Chế độ xem dạng cây Kiểm soát Thuộc tính danh sách hình ảnh giống như trước đó chúng tôi đã làm sau khi tải lên Hình ảnh thông qua Mã VBA.
-
Mã mẫu sau sẽ chuyển Tham chiếu của ImageList đến Thuộc tính ImageList của Điều khiển Chế độ xem dạng cây trong các Dự án mới.
Dim objimgList As MSComctlLib.ImageList 'Initialize ImageList Object Set objimgList = Me.ImageList0.Object With tvw .ImageList = objimgList End With
Mở rộng / Thu gọn các nút bằng một nút lệnh
-
Mở biểu mẫu frmMenu2 trong Dạng xem thiết kế.
-
Chọn nút Thu gọn tất cả Nút lệnh, mở Thủ tục sự kiện nhấp chuột của nó và xóa mã.
-
Xóa chính Nút lệnh đó khỏi Biểu mẫu.
-
Chọn Mở rộng tất cả Nút lệnh, mở Thủ tục sự kiện nhấp của nó.
-
Sao chép Mã VBA sau và Dán mã ghi đè lên các dòng hiện có, giữa cmdExpand_Click (). . . Kết thúc Sub dòng như hình dưới đây:
Private Sub cmdExpand_Click() Dim Nodexp As MSComctlLib.Node If cmdExpand.Caption = "Expand All" Then cmdExpand.Caption = "Collapse All" For Each Nodexp In tvw.Nodes Nodexp.Expanded = True Next Nodexp Else cmdExpand.Caption = "Expand All" For Each Nodexp In tvw.Nodes Nodexp.Expanded = False Next Nodexp End If End Sub
-
Lưu và mở frmMenu2 ở chế độ xem bình thường.
-
Chú thích nút lệnh là Mở rộng tất cả Hiện nay.
-
Nhấp vào nút lệnh để mở rộng tất cả các nút. Tất cả các nút hiện đang ở dạng mở rộng. Chú thích của Nút lệnh thay đổi thành Thu gọn tất cả .
-
Nhấp lại vào nó và tất cả các Nút ở trạng thái thu gọn, Văn bản phụ đề chuyển trở lại thành Mở rộng tất cả một lần nữa.
Tuần tới, chúng ta sẽ xem việc sử dụng CheckBox trên Nút để tìm hiểu cách chúng tôi có thể xác định các Nút đã kiểm tra và làm việc với chúng.
MODULE LỚP
- Mô-đun lớp MS-Access và VBA
- Mảng và đối tượng lớp VBA MS-Access
- Lớp cơ sở MS-Access và các đối tượng có nguồn gốc
- VBA-Base Class và Derived Object-2
- Lớp cơ sở và các biến thể đối tượng có nguồn gốc
- Tập bản ghi MS-Access và Mô-đun lớp
- Truy cập mô-đun lớp và các lớp gói
- Chức năng của lớp Wrapper