نقوم بتعريف شريط القوائم
Dim ProgMenu As New Windows.Forms.MenuStrip
ثم نقوم بربطه مع النافذة
ProgMenu.Parent = Me Me.MainMenuStrip = ProgMenu
وبعد ذلك نقوم بإنشاء القوائم الفرعية وإضافتها لشريط القوائم مثلا سنضيف القائمة File ثم سنضيف بعض العناصر لها وذلك بإنشاء متغير من النوع System.Windows.Forms.ToolStripMenuItem و تعيين خصائصه ثم إضافته للمجموعة DropDownItems
Dim FMenu As New System.Windows.Forms.ToolStripMenuItem("&File", Nothing, Nothing, "FileMenu")
ProgMenu.Items.Add(FMenu)وبنفس الطريقة تماما نقوم بإضافة البنود الفرعية للقائمة File فلإضافة البند New مثلا
Dim SMenu As System.Windows.Forms.ToolStripMenuItem
SMenu = New System.Windows.Forms.ToolStripMenuItem("&Open", Nothing, AddressOf MenuHandler, "OpenMenu")
FMenu.DropDownItems.Add(SMenu)ففي الكود التالي يمتلك المشيد الخاص بالفئة ToolStripMenuItem ثمانية طرق Overloaded Constructor سأشرح المستخدمة منها هنا في هذا المثال حيث يمثل البارمتر الأول النص الذي سيظهر في القائمة والثاني صورة تظهر بطرف القائمة والثالث عنوان الإجرائية التي ستقوم بمعالجة حدث النقر على القائمة والأخير سلسة نصية تعرف القائمة
ويمكن أن نكتب الإجراء الذي سيعالج حدث النقر على القوائم MenuHandler والذي استخدمنا اسمه هنا كبارامتر عند تعريف القوائم بالشكل التالي
Private Sub MenuHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)
' Handle Menus by it's string using Select Statement
Select Case sender.ToString
Case "E&xit"
' You can put the code you need for Exit command
MsgBox("This will End the program")
Me.Close()
Case "&New"
' You can put code here for New command
MsgBox("New Command Pressed")
Case "&Open"
' You can put code here for open command
MsgBox("Open command presses")
End Select
End Subحيث نستخدم عبارة Select ... Case للتعرف على أي القوائم تم نقره وبالتالي تنفيذ الكود المناسب لذلك
وإذا أردنا لاحقا إزالة بند من القائمة Open مثلا يمكن ذلك كما في الكود
Dim Men As New Windows.Forms.MenuStrip
Men = Me.MainMenuStrip
Dim Fmenu As ToolStripMenuItem = Men.Items("FileMenu")
Fmenu.DropDownItems.RemoveByKey("OpenMenu")حيث نقوم بتعريف متغير Men يشير للقائمة المرتبطة بالنافذة ثم متغير آخر Fmenu يشير للقائمة File وأخيرا نستخدم الإجراء RemoveByKey لإزالة قائمة Open و كما تلاحظ من الكود استخدمنا السلسلة النصية في البارامتر الأخير عند تعريف القائمة OpenMenu لتحديد بند القائمة المراد حذفه
وفيما يلي سرد كامل لكود هذا المثال
Public Class Form1
' Private WithEvents ProgMenu As New Windows.Forms.MenuStrip
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ProgMenu As New Windows.Forms.MenuStrip
' Attach our Menu to the current Window
ProgMenu.Parent = Me
Me.MainMenuStrip = ProgMenu
' Creating The File Menu
Dim FMenu As New System.Windows.Forms.ToolStripMenuItem("&File", Nothing, Nothing, "FileMenu")
' Add The File Menu to The Menu Strip
ProgMenu.Items.Add(FMenu)
' Creating The File Menu Items
' and adding Them To the file manu
Dim SMenu As System.Windows.Forms.ToolStripMenuItem
' create the submenu
SMenu = New System.Windows.Forms.ToolStripMenuItem("&New", Nothing, AddressOf MenuHandler, "NewMenu")
' add it to the file menu
FMenu.DropDownItems.Add(SMenu)
SMenu = New System.Windows.Forms.ToolStripMenuItem("&Open", Nothing, AddressOf MenuHandler, "OpenMenu")
FMenu.DropDownItems.Add(SMenu)
' add a Seprator
FMenu.DropDownItems.Add("-")
SMenu = New System.Windows.Forms.ToolStripMenuItem("E&xit", Nothing, AddressOf MenuHandler, "ExitMenu")
FMenu.DropDownItems.Add(SMenu)
Me.Refresh()
End Sub
Private Sub MenuHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)
' Handle Menus by it's string using Select Statement
Select Case sender.ToString
Case "E&xit"
' You can put the code you need for Exit command
MsgBox("This will End the program")
Me.Close()
Case "&New"
' You can put code here for New command
MsgBox("New Command Pressed")
Case "&Open"
' You can put code here for open command
MsgBox("Open command presses")
End Select
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' code to remove open menu
Dim Men As New Windows.Forms.MenuStrip
Men = Me.MainMenuStrip
Dim Fmenu As ToolStripMenuItem = Men.Items("FileMenu")
Fmenu.DropDownItems.RemoveByKey("OpenMenu")
End Sub
End Class