Sử dụng Menu trong Visual Basic

11 1.1K 5
Sử dụng Menu trong Visual Basic

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Sử dụng Menu trong Visual Basic

Chương Mười - Dùng Menu Menu Windows nơi tất commands program xếp thứ tự theo loại để giúp ta dùng dễ dàng Có hai loại menu ta thường gặp: drop-down (thả xuống) menu pop-up (hiện lên) menu Ta dùng drop-down menu làm Menu chánh cho chương trình Thơng thường nằm phía chóp ảnh Nằm dọc theo chiều ngang Menu Bar, ta click lên command Menu Bar program thả xuống menu với MenuItems nằm dọc theo chiều thẳng đứng Nếu ta click lên MenuItem có dấu hình tam giác nhỏ bên phải program popup Menu hình (khi ta click Format | Make Same Size): Main Menu Ta dùng Menu Editor để tạo sữa Menu cho program Menu thuộc Form Do đó, trước hết ta select Form để làm việc với Designer (chớ khơng phải code Form) Kế ta dùng Menu Command Tools | Menu Editor hay click lên icon Menu Editor Toolbar để làm cho Menu Editor Đầu tiên có vệt màu xanh nằm khung trắng Menu Editor, nơi hiển thị Caption Menu Command Form Khi ta đánh chữ &File vào Textbox Caption, vệt xanh nói Kế đó, bạn đánh tên Menu Command vào Textbox Name Dù ta cho Menu Command tên ta dùng nó, trừ trường hợp muốn visible/invisible (hiện ra/biến mất) Bình thường ta dùng tên MenuItems nhiều Để có Menu hình ta cịn phải edit thêm vào MenuItems Open, Save, Close Exit Hình cho thấy tất MenuItems Menu Command File nằm thụt qua bên phải với bốn dấu chấm ( ) phía trước Khi ta click dấu tên qua phải MenuItem ta Edit có thêm bốn dấu chấm, tức thụt bậc Menu (Nested) Tương tự vậy, ta click dấu tên qua trái MenuItem ta Edit bốn dấu chấm, tức trồi bậc Menu Nếu muốn cho User dùng Alt key để xử dụng Menu, bạn đánh thêm dấu & trước character bạn muốn menu Caption Thí dụ Alt-F thả xuống Menu Menu Command File Nếu bạn đặt cho MenuItem &Open tên mnuOpen, bạn Click lên Caption Form lúc thiết kế, VB6 IDE hiển thị vỏ Sub mnuOpen_Click(), giống Sub ng Sub Sub cmdButton_Click() CommandButton: a CommandButton: t CommandButton: Private Sub mnuOpen_Click() MsgBox "You clicked mnuOpen" End Sub Trong thí dụ ta đánh thêm Statement để hiển thị message đơn giản "You clicked mnuOpen" Bạn đặt cho MenuItem tên được, người ta thường dùng prefix mnu để dễ phân biệt menuItem Event với CommandButton Event Do đó, ta có tên mnuFile, mnuOpen, mnuSave, mnuClose, mnuExit Cái gạch ngang MenuItems Close Exit gọi Menu Separator Bạn nhét Menu Separator cách cho Caption dấu trừ ( - ) Ngồi Alt key ta cịn cho User dùng Shortcut menuItem Để cho MenuItem Shortcut, bạn chọn cho Shortcut từ ComboBox Shortcut Menu Editor Trong hình ta chọn Ctrl+O cho mnuOpen By default, menuItem đư Sub c Enabled Visible Lúc thiết kế bạn cho MenuItem giá Visible Lúc thiết kế bạn cho MenuItem giá t kết kế bạn cho MenuItem giá bạn cho MenuItem giá n cho MenuItem giá cho MenuItem giá tr kh i đ u CommandButton: a Enabled Visible Lúc thiết kế bạn cho MenuItem giá Visible cách dùng Checkboxes Enabled Visible.ng cách dùng Checkboxes Enabled Visible Lúc thiết kế bạn cho MenuItem giá Visible Trong chạn cho MenuItem giá y program (at runtime), bạn cho MenuItem giá n thay đổi values Enabled ng cho MenuItem giá thay đổi values Enabled i values Enabled Visible Lúc thiết kế bạn cho MenuItem giá Visible Sub sau: mnuSave.Enabled = False mnuOpen.Visible = False Khi MenuItem có Enabled=False bị mờ user không dùng Bạn dùng dấu mũi tên lên xuống để di chuyển MenuItem selected lên xuống danh sách MenuItems Bạn dùng button Delete để hủy bỏ MenuItem selected, Insert để nhét MenuItem MenuItem selected Next để chọn MenuItem MenuItem selected Pop-up Menu Đối với User, làm việc với Object Windows tiện ta làm hiển thị Context Menu (Menu áp dụng cho tình huống) Mouse click Thơng thường Right Click Context Menu cịn gọi Pop-up Menu Chính Pop-Up menu thật Drop-down menu Menu Bar Command Bình thường Menu Bar Command visible hay invisible (tàn hình) Trong hình đây, User Right click Form, mnuEdit lên Nếu bình thường bạn khơng muốn cho User dùng Main Menu bạn cho invisible: Code Visible Lúc thiết kế bạn cho MenuItem giá m cho Popup menu lên viết Event Mousedown Object mà n lên đư Sub c viết kế bạn cho MenuItem giá t Event Mousedown CommandButton: a CommandButton: t Object mà Visible Lúc thiết kế bạn cho MenuItem giá tình cờ Form: Visible Lúc thiết kế bạn cho MenuItem giá CommandButton: a Form: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Popup the Edit Menu if User clicked the Right Button of the Mouse If Button = vbRightButton Then PopupMenu mnuEdit End If End Sub Ngay bạn muốn cho mnuEdit bình thường invisible, bạn nên visible lúc đầu để tiện bỏ code vào dùng để xử lý Click Events MenuItems thuộc mnuEdit mnuCopy, mnuCut mnuPaste Chứa menu Settings Registry Giả tỉ program bạn cho User Option WordWrap đây: Bạn muốn Program nhớ Option mà User chọn, để lần tới User khởi động program Option WordWrap cịn giữ ngun giá trị cũ Cách tiện chứa value Option WordWrap Key Registry Registry loại sở liệu đặc biệt Windows Operating System dùng để chứa kiện liên hệ đến Users, Hardware, Configurations, ActiveX Components v.v dùng computer Trong Registry, data đặt theo loại theo đẳng cấp Bạn Edit trực tiếp trị số Keys Registry cách dùng Registry Editor Trong program nầy ta bắt program nhớ vị trí Form program ngừng lại, để lần tới User khởi động program program có vị trí lúc đầu giống y trước Ta dùng Sub SaveSetting để chứa Checked value mnuWordWrap Left, Top Form Code ta để Sub Form_QueryUnload executed trước Form đư Sub c executed trư Sub ớc Form c Form Unload Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) SaveSettings End Sub Private Sub SaveSettings() ' Save Location of the form SaveSetting App.Title, "Location", "Left", Me.Left SaveSetting App.Title, "Location", "Top", Me.Top ' Save the setting of WordWrap in menu SaveSetting App.Title, "Settings", "WordWrap", mnuWordWrap.Checked End Sub App.Title Tựa đề program Thơng thường tên VB Project, bạn sữa Project Property Dialog (Tab Make) : Khi chứa value thứ (ta gọi Key) vào Registry bạn đặt cho nằm Section tùy ý Ở ta đặt hai Sections tên Location để chứa Top,Left Form tên Settings để chứa Key mnuWordWrap.Checked Muốn cho program có giá trị Keys chứa Registry khởi động ta cần dùng Function GetSetting Sub Form_Load MenuItem giá đọc vào từ Registry đây:c Visible Lúc thiết kế bạn cho MenuItem giá o từ Registry đây: Registry Sub dư Sub ớc Form i đây: Private Sub Form_Load() ' Initialise Location of the form by reading the Settings from the Registry Me.Left = Val(GetSetting(App.Title, "Location", "Left", "0")) Me.Top = Val(GetSetting(App.Title, "Location", "Top", "0")) ' Initialise setting of WordWrap in the menu mnuWordWrap.Checked = ( GetSetting(App.Title, "Settings", "WordWrap", "False") = "True" ) End Sub Lúc đầu chưa có Registry "0" (string "0" converted Val 0) default value cho Left Top, "False" default value mnuWordWrap.Checked Ngoài ta muốn program nhớ tên ba Files User dùng gần Tức Drop-down Menu Command File có MenuItem Recent Files để hiển thị từ đến ba tên Files, nằm hết Trước hết, ta cần tạo SubmenuItem có tên mnuRFile mang Index 0,1 (bạn đánh vào Textbox Index) Ta dùng Captions chúng để hiển thị tên Files Lúc chưa có Filename MenuItem Recent Files bị làm mờ (tức mnuRecentFiles.Enabled = False ) Ta chứa tên Files String Section Settings Registry Ta phân cách tên Files delimiter character | Thí dụ: "LattestFileName.txt|OldFileName.txt|OldestFilename.txt" Mỗi lần User Open File ta thêm tên File vào Registry lúc giữ lại tên Files dùng Dư Sub ớc Form i Visible Lúc thiết kế bạn cho MenuItem giá code dùng MenuItem giá thêm tên File mớc Form i dùng vào Registry:t Visible Lúc thiết kế bạn cho MenuItem giá o Registry: Private Sub mnuOpen_Click() ' Initialise Folder in Common Dialog CommonDialog1.InitDir = App.Path ' Launch the dialog CommonDialog1.ShowOpen ' Save the Filename in the Registry, using Object myRecentFiles myRecentFiles.AddFile CommonDialog1.FileName End Sub Code dùng Sub Form_Load MenuItem giá đọc vào từ Registry đây:c tên RecentFiles Visible Lúc thiết kế bạn cho MenuItem giá hiể cho MenuItem giá n th Menu: ' Set myRecentFiles = New clsRecentFiles ' Pass the form handle to it ' This effectively loads the most recently used FileNames to menu myRecentFiles.Init Me Ta dùng Class tên clsRecentFiles để đặc biệt lo việc chứa tên Files vào Registry hiển thị tên Files Menu Bên clsRecentFiles ta dùng clsString, Class giúp ta ngắt khúc String Registry tên Files dựa vào chỗ delimiter character | ' Author: Le Duc Hong http://www.vovisoft.com ' Class Name: clsRecentFiles ' This Class saves the most Recent FileNames used in the Registry in form of ' a String delimited by | ' Up to MaxFiles Filenames maybe stored ' You need to pass the Form that contains the menu to it ' The assumption is that you have created an array of MenuItems named mnuRFile ' to display the FileNames ' Const MaxFiles = ' Maximum number of FileNames to remember Private myForm As Form Private RecentFiles As clsString Public Sub Init(TForm As frmMenu) Set myForm = TForm Set RecentFiles = New clsString ' Read the Most Recent Filename String from the Registry RecentFiles.Text = GetSetting(App.Title, "Settings", "RecentFiles", "") ' Assign the Delimiter character and tokennise the String (i.e split it) into FileNames RecentFiles.Delimiter = "|" UpdateMenu End Sub Public Sub AddFile(FileName As String) ' Add the latest FileName to the list and update the Registry ' Prefix the FileName to the existing MostRecentFileName String RecentFiles.Text = FileName & "|" & RecentFiles.Text ' Discard the oldest FileNames if the total number is greater than MaxFiles If RecentFiles.TokenCount > MaxFiles Then Dim TStr As String Dim i As Integer ' Reconstitute the String that contains only the most recent MaxFiles FileNames For i = To MaxFiles TStr = TStr & RecentFiles.TokenAt(i) & "|" Next ' Remove the last delimiter character on the right RecentFiles.Text = Left(TStr, Len(TStr) - 1) End If ' Update the String in the Registry SaveSetting App.Title, "Settings", "RecentFiles", RecentFiles.Text UpdateMenu End Sub Private Sub UpdateMenu() ' Display the most recent Filenames in the menu Dim i As Integer ' If there is no FileNames to display then disable the MenuItem entry If RecentFiles.TokenCount = Then myForm.mnuRecentFiles.Enabled = False Exit Sub Else ' Otherwise enable the MenuItem entry myForm.mnuRecentFiles.Enabled = True End If ' Assign FileName to Caption of mnuRFile array and make the MenuItem elements visible For i = To RecentFiles.TokenCount myForm.mnuRFile(i - 1).Caption = RecentFiles.TokenAt(i) ' Assign to Caption myForm.mnuRFile(i - 1).Visible = True ' Make the MenuItem visible If i = MaxFiles Then Exit For ' This line maybe unnecessary Next ' Make the rest of the MenuItem array mnuRFile invisible if there are less than MaxFiles If RecentFiles.TokenCount < MaxFiles Then For i = RecentFiles.TokenCount To MaxFiles - myForm.mnuRFile(i).Visible = False Next End If End Sub Bạn chạy Line Command RegEdit sau click Start | Run để xem chi tiết Keys mà program chứa Sections Location Settings Folder HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Menu ... thị Context Menu (Menu áp dụng cho tình huống) Mouse click Thơng thường Right Click Context Menu gọi Pop-up Menu Chính Pop-Up menu thật Drop-down menu Menu Bar Command Bình thường Menu Bar Command... lên xuống danh sách MenuItems Bạn dùng button Delete để hủy bỏ MenuItem selected, Insert để nhét MenuItem MenuItem selected Next để chọn MenuItem MenuItem selected Pop-up Menu Đối với User, làm... muốn cho User dùng Alt key để xử dụng Menu, bạn đánh thêm dấu & trước character bạn muốn menu Caption Thí dụ Alt-F thả xuống Menu Menu Command File Nếu bạn đặt cho MenuItem &Open tên mnuOpen, bạn

Ngày đăng: 22/08/2012, 11:04

Hình ảnh liên quan

Để có một Menu như trong hình dưới đây ta còn phải edit thêm vào các MenuItems Open, Save, Close và Exit - Sử dụng Menu trong Visual Basic

c.

ó một Menu như trong hình dưới đây ta còn phải edit thêm vào các MenuItems Open, Save, Close và Exit Xem tại trang 2 của tài liệu.
Hình dưới đây cho thấy tất cả các MenuItems của Menu Command File đều nằm thụt qua bên phải với bốn dấu chấm (....) ở phía trước - Sử dụng Menu trong Visual Basic

Hình d.

ưới đây cho thấy tất cả các MenuItems của Menu Command File đều nằm thụt qua bên phải với bốn dấu chấm (....) ở phía trước Xem tại trang 2 của tài liệu.
Trong hình dưới đây ta chọn Ctrl+O cho mnuOpen. - Sử dụng Menu trong Visual Basic

rong.

hình dưới đây ta chọn Ctrl+O cho mnuOpen Xem tại trang 3 của tài liệu.
Trong hình dưới đây, khi User Right click trên Form, mnuEdit sẽ hiện lên. Nếu bình thường bạn không muốn cho User dùng nó trong Main Menu thì bạn cho nó invisible:  - Sử dụng Menu trong Visual Basic

rong.

hình dưới đây, khi User Right click trên Form, mnuEdit sẽ hiện lên. Nếu bình thường bạn không muốn cho User dùng nó trong Main Menu thì bạn cho nó invisible: Xem tại trang 5 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan