ساخت نوار ابزار با استفاده از کنترل ToolStrip

نوار ابزار، شامل دکمه‌ها و اجزای مفیدی برای راحتی کار کاربر می‌باشد. مانند منو، نوار ابزار هم در تعداد زیادی از نرم افزارهای مشهور مانند Microsoft Office 2003 به چشم می‌خورد. در زیر نوار ابزار Microsoft Office 2003 را مشاهده می‌کنید :
toolbars-1001

کنترل ToolStrip

دکمه‌ها و اجزای یک نوار ابزار در داخل کنترل ToolStrip قرار می‌گیرند. برای جا به جا کردن کنترل ToolStrip از نقطه چین‌های عمودی که در سمت چپ آن قرار دارند استفاده می‌شود. در زیر برخی از خواص مهم کنترل ToolStrip توضیح داده شده‌اند :

خصوصیت توضیح
CanOverflow آیتم‌هایی که داخل کنترل toolstrip فضای کافی برای نمایش ندارند در یک قسمت مخفی قرار می‌گیرند که این فضا یا یک دکمه در دسترس قرار می‌گیرد.
GripStyle تعیین می‌کند دستگیره‌ی جابه جایی toolstrip نمایش داده شود یا خیر؟
Items آیتم‌هایی که در کنترل toolstrip قرار می‌دهید، در داخل این خصوصیت قرار می‌گیرند.
LayoutStyle نحوه‌ی نمایش آیتم‌ها را تعیین می‌کند.
ShowItemToolTips تعیین می‌کند tool tip برای آیتم نمایش داده شود یا نه؟
Stretch جهت نمایش ToolStripPanel را تعیین می‌کند.

اضافه کردن آیتم‌های استاندارد به نوار ابزار

قبل از ایجاد یک نوار ابزار دلخواه، اجازه دهید ببینیم که ویژوال استودیو چگونه به طور خودکار آیتم‌های استاندارد که شامل دکمه‌هایی مانند Save ،Open ،Copy و Paste می‌باشند را ایجاد می‌کند. یک برنامه ویندوزی جدید ایجاد کرده و نام آنرا ToolBarDemo بگذارید. از قسمت Menus & Toolbars نوار ابزار به صورت زیر یک کنترل ToolStrip را بر روی فرم قرار دهید.
toolbars-1002
بر روی فلش کوچک واقع در سمت راست کنترل ToolStrip کلیک کرده تا پنجره‌ای به شکل زیر نمایش داده شود:
toolbars-1003
در پنجره باز شده بر روی گزینه Insert Standard Items کلیک کرده تا ویژوال استودیو به طور خودکار دکمه‌های استاندارد را به صورت زیر ایجاد کند :
toolbars-1004

خاصیت Items

کنترل‌های که داخل ToolStrip اضافه می‌کنید در داخل این خصوصیت قرار می‌گیرند. انواع مختلفی از آیتم‌ها را می‌توان در داخل کنترل ToolStrip قرار داد و همگی آنها از کلاس ToolStripItem ارث بری می‌کنند.

نوع آیتم توضیح
ToolStripButton یک آیتم که نمایش دهنده یک دکمه هست. با کلیک بر روی این آیتم می‌توان عملیات مختلفی را اجرا کرد.
ToolStripLabel یک آیتم که نمایش دهنده یک متن غیر قابل تغییر است. از این آیتم می‌توان برای نمایش عکس هم استفاده کرد.
ToolStripSplitButton یک آیتم که نمایش دهنده دکمه و فلش رو به پایین در کنار آن است. با کلیک بر روی این دکمه یک منوی باز شونده نمایش داده می‌شود. دکمه خود می‌تواند عملیات جداگانه‌ای را انجام دهد.
ToolStripDropDownButton شبیه به آیتم ToolStripSplitButton ، این آیتم نیز یک دکمه با فلش رو به پایین را نمایش می‌دهد ولی در این آیتم دکمه کار خاصی را انجام نمی‌دهد و صرفاً منو را نمایش می‌دهد.
ToolStripComboBox این آیتم یک کامبو باکس را نمایش می‌دهد.
ToolStripProgressBar یک نوار پیشرفت به کنترل ToolStrip اضافه می‌کند.
ToolStripSeparator یک جدا کننده افقی یا عمودی را نمایش می‌دهد.
ToolStripTextBox یک کنترل TextBox را نمایش می‌دهد.

در قسمت‌های بعدی نحوه‌ی استفاده از آیتم‌های بالا توضیح داده شده است.

آیتم ToolStripButton

این آیتم، رایج‌ترین آیتمی است که شما در یک نوار ابزار می‌بینید. زمانی که بر روی این آیتم کلیک می‌کنید، رویداد Click آن همچون یک دکمه معمولی اتفاق می افتد. کنترل ToolStrip قبلی را حذف و یک نمونه جدید از آن را، روی فرم خود قرار دهید. اگر شما کنترل ToolStrip را انتخاب کنید یک آیکن با فلش کوچک رو پایین در کنار آن، نمایان می‌شود. با کلیک بر روی این آیکن لیستی از آیتم‌هایی که می‌توانید به کنترل اضافه کنید، نمایش داده می‌شود.
toolbars-1005
بر روی Button کلیک کنید تا یک کنترل ToolStripButton به ToolStrip اضافه شود.
toolbars-1006
این کنترل از یک آیکن پیشفرض استفاده می‌کند. برای تغییر دادن این آیکن به خاصیت Image از پنجره Properties رفته و عکس دلخواه خود را انتخاب کنید. در قسمت طراحی فرم، بر روی دکمه دوبار کلیک کنید تا کنترل کننده رویداد کلیک آن به طور خودکار توسط ویژوال استودیو ایجاد شود. کد زیر را به کنترل کننده رویداد اضافه کنید :

toolStripProgressBar1.PerformStep();

کد بالا باعث می‌شود هنگامی که بر روی دکمه کلیک کنید یک پیغام ساده نمایش داده شود. در واقع، کدهایی که وظیفه خاصی را انجام می‌دهند مانند تغییر استایل فونت جعبه متن و … در این رویداد قرار می‌دهید.

آیتم ToolStripLabel

این آیتم به شما اجازه می‌دهد که یک متن غیر قابل تغییر را به ToolStrip اضافه می‌کند. همچنین به شما اجازه می‌دهد که یک آیکن کوچک را در کنار آن نمایش دهید. برای اضافه کردن یک ToolStripLabel، بر روی آیکن کوچک کلیک کرده و سپس Label را انتخاب کنید.
toolbars-1007
هنگامی که این آیتم را اضافه کردید، می‌توانید از خاصیت Text آن برای تغییر عنوان آن استفاده کنید.
toolbars-1008
با استفاده از خاصیت Image می‌توان یک عکس را در کنار آن نمایش داد.

toolbars-1009

آیتم ToolStripSplitButton

این آیتم یک دکمه که قابل کلیک کردن است را، نمایش می‌دهد. به علاوه اینکه یک فلش رو به پایین در کنار آن قرار دارد، که با کلیک بر روی آن یک منوی باز شونده شامل دستوراتی که مرتبط با دکمه هستند نمایان می‌شود. یک نمونه از این آیتم، دکمه Add New Item در نوار ابزار Visual Studio است.
toolbars-1010
هنگامی که بر روی دکمه اصلی کلیک می‌کنید پنجره‌ی Add New Item به جای منو نمایان می‌شود. برای اضافه کردن کنترل ToolStripSplitButtonبر روی new item در ToolStrip کلیک کرده و SplitButton را انتخاب کنید. برای اضافه کردن منو به این کنترل، بر روی فلش کوچک کنار آن کلیک کنید و لیست منوها را بنویسید.
toolbars-1011
دکمه و منو آیتم‌های مرتبط با آن می‌توانند عملیات مختلفی را هنگام کلیک بر روی آنها، انجام دهند. به این نکته توجه فرمایید، که کنترل کننده رویداد دکمه با کنترل کننده منوهای زیر مجموعه آن متفاوت است. همانند کنترل ToolStripButton، می‌توانید برای این کنترل آیکن کوچکی را با استفاده از خاصیت Image تعیین کنید.
toolbars-1012

آیتم ToolStripDropDownButton

این آیتم بسیار شبیه به آیتم ToolStripSplitButton است، از این جهت که هنگامی که بر روی آن کلیک می‌کنید یک منوی بازشونده نمایش داده می‌شود. تنها تفاوت بین آنها این است که DropDownButton یک تصویر ساده است، و هنگامی که بر روی آن کلیک می‌کنید تنها منو را نمایش می‌دهد. پس هدف DropDownButton فقط نمایش منو است. برای اضافه کردن این آیتم در لیست بازشونده بر روی DropDownButton کلیک کنید.
toolbars-1013
شیوه اضافه کردن منو بب این آیتم شبیه به کنترل ToolStripSplitButton است. همچنین می‌توانید به روش مشابه با سایر کنترل‌ها برای این آیتم یک آیکن کوچک انتخاب کنید.

آیتم ToolStripComboBox

این آیتم به شما اجازه می‌دهد که یک کامبو باکس را به ToolStrip اضافه کنید. این آیتم شبیه به کنترل ComboBox است. برای اضافه کردن بخش‌هایی به این کنترل از خاصیت Items استفاده کنید. همچنین می‌توانید از رویداد SelectedIndexChanged استفاده کنید.
toolbars-1014
در شکل زیر، یک کامبو باکس با تعدادی آیتم داخل آن نمایش داده شده است.
toolbars-1015
رویداد پیش فرض این کنترل کلیک است، پس برای استفاده از رویداد SelectedIndexChanged به قسمت رویدادها در پنجره Properties رفته و بر روی قسمت جلوی نام این رویداد دوبار کلیک کنید تا کنترل کننده رویداد آن به صورت خودکار برای شما نوشته شود.

آیتم ToolStripTextBox

این آیتم نمایانگر یک جعبه متن است. این کنترل شبیه به کنترل TextBox است و خاصیت بسیار مهم آن Text است که هنگام تغییر آن رویداد TextChanged اتفاق می افتد.
toolbars-1017
به این نکته توجه کنید که رویداد پیشفرض این آیتم کلیک است. اگر می‌خواهید یک کنترل کننده رویداد به آن اضافه کنید به پنجره Properties رفته و در قسمت رویدادها، رویداد TextChanged را پیدا و بر روی آن دوبار کلیک کنید تا کنترل کننده رویداد آن اضافه شود.

آیتم ToolStripSeparator

تنها هدف این آیتم جدا کردن آیتم‌ها، به قسمت‌های مرتبط با هم است.
toolbars-1016
همانطور که در شکل بالا می‌بینید، این آیتم کنترل ToolStrip را به قسمت‌های مختلفی تقسیم می‌کند.

آیتم ToolStripProgressBar

از این کنترل، برای نمایش روند پیشرفت یک عملیات مانند ذخیره کردن، حذف کردن یا هر عملیاتی که کاربر نیاز به صبر کردن دارد استفاده می‌شود. با استفاده از این آیتم یک نوار پیشرفت به کاربر نمایش داده می‌شود. بدون وجود این کنترل کاربر ممکن است تصور کند که برنامه قفل کرده یا کار نمی‌کند .
toolbars-1018
دو خاصیت مهم ToolStripProgressBar عبارتند از: Step و Value. خاصیت Value تعیین کننده وضعیت جاری نوار پیشرفت است و خاصیت Step تعیین می‌کند که با فراخوانی متد ()PerformStep چه مقدار به خاصیت Value اضافه شود. به عنوان مثال، مقدار این خاصیت را برابر 1 قرار داده و یک کنترل Timer از قسمت Components جعبه ابزار بر روی فرم قرار دهید. مقدار خاصیت Enabled تایمر را به true تغییر داده و بر روی آن دوبار کلیک کنید تا کنترل کننده رویداد Tick ایجاد شود. سپس کد زیر را درون آن قرار دهید :

toolStripProgressBar1.PerformStep();

متد ()PerformStep هر 100 میلی ثانیه یک بار (این مقدار برابر خاصیت interval تایمر است) مقدار خاصیت value کنترل ToolStripProgressBar (که برابر خاصیت Step است) یک واحد افزایش می‌دهد. برنامه را اجرا و نتیجه رامشاهده کنید.

toolbars-1019

اضافه کردن ToolTip به آیتم‌های ToolStrip

هر آیتم دارای خاصیتی به نام ToolTipText است که مشخص کننده متنی است که، هنگام قرار دادن ماوس بر روی آیتم نمایان می‌شود. به این نکته توجه کنید که ابتدا مقدار خاصیت ShowItemToolTips کنترل ToolStrip را به true تغییر دهید.
toolbars-1020

استفاده از خاصیت‌های و Overflow

هنگامی که شما تعداد زیادی آیتم به کنترل ToolStrip اضافه کنید برای آیتم‌های بعدی چه اتفاقی افتد؟ به عبارت دگیر برای آیتم‌های بعدی فضای کافی وجود ندارد. به طور پیشفرض مقدار خاصیت CanOverflow برابر true است. این کار سبب می‌شود که هنگامی که فضای کافی در کنترل ToolStip وجود ندارد آیتم‌ها در منوی مخفی که با یک دکمه کوچک در دسترس است قرار گیرند
toolbars-1021
همچنین می‌توانید مقدار خاصیت Overflow از هر آیتم را برابر Always قرار دهید. این کار سبب می‌شود که حتی زمانی که فضای کافی در کنترل وجود داشته باشد آیتم در منوی مخفی قرار گیرد.
toolbars-1022