الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف نقوم بإضافة شريط قوائم للنافذة في زمن التشغيل

مغلق
بدأه محمد سامر أبو سلو في 2 يناير 2007 · 4 رد · 1,796 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

نقوم بتعريف شريط القوائم

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

تم تعديل هذه المشاركة بواسطة samerselo في 2 يناير 2007 في 04:47

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#2

جزالك الله كل خير شرح وافي جدا و مفيد للغاية

The Best Time You Make Friends Is Before You Need Them

Ahmed EL Awady

#3

شكرا علي الشرح الجميل وجاري التجربة جزاك الله كل خير

سبحان الله وبحمده سبحان الله العظيم

DODY

#4

مشكور اخي الغالي عى هذا الشرح الوافي

#5

الله يعطيك العافية

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…