اضافه کردن منو به فرم با استفاده از کنترل MenuStrip

نوار منو در اکثر برنامه به چشم می‌خورد. این نوار، شامل دستورات مختلفی است که کاربر از آنها استفاده می‌کند و در ویژوال استودیو با استفاده از کنترل MenuStrip می‌توان آن را به برنامه اضافه کرد. در شکل زیر یک کنترل MenuStrip را از جعبه ابزار بر روی فرم کشیده‌ایم :
adding-menu-bar-01
MenuStrip همانند کنترل Timer جزو کنترلهای غیر بصری بوده و در قسمت components tray قرار می‌گیرد. در زیر برخی از خواص پر کاربرد MenuStrip ذکر شده است :

خاصیت توضیح
Dock مشخص می‌کند که کنترل منو به کدام گوشه فرم بچسبد. مقدار پیشفرض آن top است
GripStyle به شما اجازه می‌دهد که مکان منو را تغییر دهید.
Items کلکسیونی از منوی های اصلی را در بر می‌گیرد.
Stretch تعیین می‌کند که کنترل منو در سرتاسر در برگیرنده خود کشیده شود.

اضافه کردن منوهای استاندارد

ویژوال استودیو برای اضافه کردن آیتم‌های استاندارد به MenuStrip روشی را پیشنهاد می‌دهد. برای انجام این کار، مانند شکل زیر بر روی فلش کلیک کرده تا صفحه‌ای ظاهر شود :
adding-menu-bar-02
از صفحه باز شده بروی گزینه Insert Standard Items کلیک کنید :
adding-menu-bar-03
با انجام این کار ویژوال استودیو به صورت خودکار گزینه‌ها و آیکونها مربوط به آنها را مانند شکل زیر به منو اضافه می‌کند :
adding-menu-bar-04

اضافه کردن منوهای دلخواه

ممکن است در بعضی از شرایط به منوهای خاص نیاز نداشته باشید. شما می‌توانید با استفاده از ابزارهای ویژوال استودیو منوی دلخواهی را ایجاد کنید.
ابتدا یک کنترل MenuStrip را به فرم اضافه کرده و با کلیلک بر روی قسمتی که با فلش نشان داده شده است یک منو اضافه و عنوان آنرا تایپ کنید.
adding-menu-bar-05
به این نکته توجه نمایید که، در هنگام تایپ عنوان منو، جعبه دیگری در کنار آن ظاهر می‌شود و شما می‌توانید منوهای دیگری را اضافه نمایید به عنوان مثال منوهایی مانند Edit ،Help و File در کنترل MenuStrip ایجاد کنید.
adding-menu-bar-06
برای اضافه کردن زیر منو بر روی یکی از منوها کلیک کرده تا جعبه‌ای برای اضافه کردن زیرمنو به آن ظاهر شود .
adding-menu-bar-07
برای ایجاد یک جدا کننده یک کاراکتر خط تیره (-) را تایپ کنید.
adding-menu-bar-08
همچنین شما می‌توانید برای هر زیر منو مانند شکل زیر، زیرمنوهای دیگری را تعریف نمایید
adding-menu-bar-09
هر کدام از منوهایی که اضافه می‌کنید از نوع ToolStripMenuItem هستند. همچنین نوع جدا کننده ToolStripSeparator هست از ToolStripSeparator فقط برای تقسیم بندی منوهای مرتبط با هم استفاده می‌شود. هر ToolStripMenuItem به خاصیت Items کنترل MenuStrip و هر زیر منو به خاصیت DropDownItems از ToolStripMenuItem اضافه می‌شود. ویژوال استودیو به طور خودکار بر اساس متنی که برای هر یک از ToolStripMenuItem انتخاب کرده‌اید نامی به آنها اختصاص می‌کند. در زیر برخی از خواص ToolStripMenuItem را مشاهده می‌کنید.

خاصیت توضیح
Checked تعیین می‌کند که آیا آیتم تیک خورده است یا نه؟
CheckOnClick تعیین می‌کند که آیتم قابلیت تیک خوردن داشته باشد یا نه؟
CheckState تعیین می‌کند که به طور پیشفرض آیتم تیک داشته باشد یا نه؟
DropDownItems زیر منوهای آیتم در این خاصیت قرار می‌گیرند
Enabled آیتم را فعال یا غیر فعال می‌کند.
Image عکسی را به آیتم اختصاص می‌دهد.
ShortcutKeys کلید میانبر آیتم را تعیین می‌کند.
ShowShortcutKeys تعیین می‌کند که کلید میانبر در کنار آیتم نشان داده شود یا نه؟
Text عنوان آیتم را تعیین می‌کند.
ToolTipText وقتی که ماوس را بر روی آیتم قرار می‌دهید، متنی که برای این خاصیت تعیین کرده‌اید نمایش داده می‌شود.

منوهای تیک دار و غیر تیک دار

خاصیت CheckOnClick به هر منو این قابلیت را می‌دهد که قابل تیک خوردن باشد یا نه؟ به عنوان مثال، شما می‌توانید منویی به شکل زیر ایجاد کنید. برای اینکار باید خاصیت CheckOnClick زیر منوهای آن را برابر true قرار دهید. با کلیک بر روی هر آیتم یک علامت تیک در سمت چپ آن نمایش داده می‌شود.
adding-menu-bar-10
با استفاده از خاصیت‌های Checked و CheckState می‌توانید تعیین کنید که یک آیتم تیک داشته باشد یا خیر؟

اضافه کرده کلیدهای میانبر به منو

ساده‌ترین را برای انجام این کار اضافه کرده کاراکتر & در ابتدای نام آیتم است.
adding-menu-bar-11
حرف بعد از کاراکتر & به عنوان کلید میانبر در نظر گرفته می‌شود. به عنوان مثال در منوی , &Save حرف S و در E&xit حرف x کلید میانبر است. در قسمت طراحی کلیدهای میانبر به صورت زیر خط دار نمایش داده می‌شوند در زمان اجرا علامت زیر خط با فشار دادن کلید Alt نمایان می‌شود. براس استفاده از این نوع کلیدهای میانبر باید کلید Alt را ابتدا فشار دهید.

برای فعال کردن یک منو شما باید کلیدهای ترکیبی (کلید میانبر + Alt ) را فشار دهید. به عنوان مثال برای استفاده از منوی File از کلیدهای ترکیبی Alt + F استفاده کنید. برای ایجاد کلیدهای میانبر پیچیده‌تر باید از خاصیت ShortcutKeys استفاده نمایید. یک آیتم را انتخاب و در پنجره Properties خصوصیت ShortcutKeys را پیدا کنید. بر روی فلش کوچکی که در کنار این خصوصیت قرار دارد کلیک کرده تا پنجره‌ای به شکل زیر نمایان شود.
adding-menu-bar-12
هنگامی که یک کلید ترکیبی را انتخاب می‌کنید، عنوان آن در صورتی در کنار منو (در سمت راست) نمایش داده می‌شود که خاصیت ShowShortcutKeys را برابر true قرار دهید.
adding-menu-bar-13

اضافه کردن آیکن به منوها

شما می‌توانید برای هر منو آیتم، یک تصویر کوچک که در سمت چپ آن نمایش داده می‌شود را انتخاب کنید.
adding-menu-bar-14
برای اینکار از خاصیت Image استفاده می‌شود. بر روی دکمه کوچک کنار خاصیت Image در پنجره Properties کلیک کنید. منبعی که عکس در آن قرار دارد را انتخاب و سپس مسیر آنرا مشخص نمایید. اگر سایز عکس بیش از اندازه باشد، به صورت خودکار بر اساس مقدار خاصیت ImageScaling اندازه آن تغییر می‌کند.

اضافه کردن عمکلرد به منوها

هنگامی که بر روی یک منو آیتم کلیک می‌کنید رویداد Click آن اتفاق می افتد. برای اضافه کردن قابلیتی مشخص به منو آیتم باید کدهای خود را در این رویداد قرار دهیم. برای اضافه کردن کنترل کننده رویداد کلیک به هر منو آیتم، در محیط طراحی بر روی منو آیتم مورد نظر دوبار کلیک کرده تا ویژوال استودیو به صورت خودکار آن را ایجاد کند. برای منو آیتم‌هایی که مقدار خاصیت CheckOnClick آن برابر true است، می‌توانید از رویدادهای CheckedChange و CheckStateChange آن‌ها را استفاده کنید. مانند شکل زیر یک فرم دیگر ساخته و یک کنترل منو به آن اضافه کنید. بر روی آیتم Exit دوبار کلیک کنید تا ویژوال استودیو کنترل کننده رویداد پیشفرض که همان کلیک است را، تولید کند. سپس کدهای زیر را در آن قرار دهید.

private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
   Application.Exit();
}

متد استاتیک ()Exit از کلاس Application به سادگی برنامه را می‌بندد.