ساخت نوار ابزار با استفاده از کنترل ToolStrip
نوار ابزار، شامل دکمهها و اجزای مفیدی برای راحتی کار کاربر میباشد. مانند منو، نوار ابزار هم در تعداد زیادی از نرم افزارهای مشهور مانند Microsoft Office 2003 به چشم میخورد. در زیر نوار ابزار Microsoft Office 2003 را مشاهده میکنید :
کنترل ToolStrip
دکمهها و اجزای یک نوار ابزار در داخل کنترل ToolStrip قرار میگیرند. برای جا به جا کردن کنترل ToolStrip از نقطه چینهای عمودی که در سمت چپ آن قرار دارند استفاده میشود. در زیر برخی از خواص مهم کنترل ToolStrip توضیح داده شدهاند :
خصوصیت | توضیح | |
CanOverflow | آیتمهایی که داخل کنترل toolstrip فضای کافی برای نمایش ندارند در یک قسمت مخفی قرار میگیرند که این فضا یا یک دکمه در دسترس قرار میگیرد. | |
GripStyle | تعیین میکند دستگیرهی جابه جایی toolstrip نمایش داده شود یا خیر؟ | |
Items | آیتمهایی که در کنترل toolstrip قرار میدهید، در داخل این خصوصیت قرار میگیرند. | |
LayoutStyle | نحوهی نمایش آیتمها را تعیین میکند. | |
ShowItemToolTips | تعیین میکند tool tip برای آیتم نمایش داده شود یا نه؟ | |
Stretch | جهت نمایش ToolStripPanel را تعیین میکند. |
اضافه کردن آیتمهای استاندارد به نوار ابزار
قبل از ایجاد یک نوار ابزار دلخواه، اجازه دهید ببینیم که ویژوال استودیو چگونه به طور خودکار آیتمهای استاندارد که شامل دکمههایی مانند Save ،Open ،Copy و Paste میباشند را ایجاد میکند. یک برنامه ویندوزی جدید ایجاد کرده و نام آنرا ToolBarDemo بگذارید. از قسمت Menus & Toolbars نوار ابزار به صورت زیر یک کنترل ToolStrip را بر روی فرم قرار دهید.
بر روی فلش کوچک واقع در سمت راست کنترل ToolStrip کلیک کرده تا پنجرهای به شکل زیر نمایش داده شود:
در پنجره باز شده بر روی گزینه Insert Standard Items کلیک کرده تا ویژوال استودیو به طور خودکار دکمههای استاندارد را به صورت زیر ایجاد کند :
خاصیت Items
کنترلهای که داخل ToolStrip اضافه میکنید در داخل این خصوصیت قرار میگیرند. انواع مختلفی از آیتمها را میتوان در داخل کنترل ToolStrip قرار داد و همگی آنها از کلاس ToolStripItem ارث بری میکنند.
نوع آیتم | توضیح |
ToolStripButton | یک آیتم که نمایش دهنده یک دکمه هست. با کلیک بر روی این آیتم میتوان عملیات مختلفی را اجرا کرد. |
ToolStripLabel | یک آیتم که نمایش دهنده یک متن غیر قابل تغییر است. از این آیتم میتوان برای نمایش عکس هم استفاده کرد. |
ToolStripSplitButton | یک آیتم که نمایش دهنده دکمه و فلش رو به پایین در کنار آن است. با کلیک بر روی این دکمه یک منوی باز شونده نمایش داده میشود. دکمه خود میتواند عملیات جداگانهای را انجام دهد. |
ToolStripDropDownButton | شبیه به آیتم ToolStripSplitButton ، این آیتم نیز یک دکمه با فلش رو به پایین را نمایش میدهد ولی در این آیتم دکمه کار خاصی را انجام نمیدهد و صرفاً منو را نمایش میدهد. |
ToolStripComboBox | این آیتم یک کامبو باکس را نمایش میدهد. |
ToolStripProgressBar | یک نوار پیشرفت به کنترل ToolStrip اضافه میکند. |
ToolStripSeparator | یک جدا کننده افقی یا عمودی را نمایش میدهد. |
ToolStripTextBox | یک کنترل TextBox را نمایش میدهد. |
در قسمتهای بعدی نحوهی استفاده از آیتمهای بالا توضیح داده شده است.
آیتم ToolStripButton
این آیتم، رایجترین آیتمی است که شما در یک نوار ابزار میبینید. زمانی که بر روی این آیتم کلیک میکنید، رویداد Click آن همچون یک دکمه معمولی اتفاق می افتد. کنترل ToolStrip قبلی را حذف و یک نمونه جدید از آن را، روی فرم خود قرار دهید. اگر شما کنترل ToolStrip را انتخاب کنید یک آیکن با فلش کوچک رو پایین در کنار آن، نمایان میشود. با کلیک بر روی این آیکن لیستی از آیتمهایی که میتوانید به کنترل اضافه کنید، نمایش داده میشود.
بر روی Button کلیک کنید تا یک کنترل ToolStripButton به ToolStrip اضافه شود.
این کنترل از یک آیکن پیشفرض استفاده میکند. برای تغییر دادن این آیکن به خاصیت Image از پنجره Properties رفته و عکس دلخواه خود را انتخاب کنید. در قسمت طراحی فرم، بر روی دکمه دوبار کلیک کنید تا کنترل کننده رویداد کلیک آن به طور خودکار توسط ویژوال استودیو ایجاد شود. کد زیر را به کنترل کننده رویداد اضافه کنید :
toolStripProgressBar1.PerformStep();
کد بالا باعث میشود هنگامی که بر روی دکمه کلیک کنید یک پیغام ساده نمایش داده شود. در واقع، کدهایی که وظیفه خاصی را انجام میدهند مانند تغییر استایل فونت جعبه متن و … در این رویداد قرار میدهید.
آیتم ToolStripLabel
این آیتم به شما اجازه میدهد که یک متن غیر قابل تغییر را به ToolStrip اضافه میکند. همچنین به شما اجازه میدهد که یک آیکن کوچک را در کنار آن نمایش دهید. برای اضافه کردن یک ToolStripLabel، بر روی آیکن کوچک کلیک کرده و سپس Label را انتخاب کنید.
هنگامی که این آیتم را اضافه کردید، میتوانید از خاصیت Text آن برای تغییر عنوان آن استفاده کنید.
با استفاده از خاصیت Image میتوان یک عکس را در کنار آن نمایش داد.
آیتم ToolStripSplitButton
این آیتم یک دکمه که قابل کلیک کردن است را، نمایش میدهد. به علاوه اینکه یک فلش رو به پایین در کنار آن قرار دارد، که با کلیک بر روی آن یک منوی باز شونده شامل دستوراتی که مرتبط با دکمه هستند نمایان میشود. یک نمونه از این آیتم، دکمه Add New Item در نوار ابزار Visual Studio است.
هنگامی که بر روی دکمه اصلی کلیک میکنید پنجرهی Add New Item به جای منو نمایان میشود. برای اضافه کردن کنترل ToolStripSplitButtonبر روی new item در ToolStrip کلیک کرده و SplitButton را انتخاب کنید. برای اضافه کردن منو به این کنترل، بر روی فلش کوچک کنار آن کلیک کنید و لیست منوها را بنویسید.
دکمه و منو آیتمهای مرتبط با آن میتوانند عملیات مختلفی را هنگام کلیک بر روی آنها، انجام دهند. به این نکته توجه فرمایید، که کنترل کننده رویداد دکمه با کنترل کننده منوهای زیر مجموعه آن متفاوت است. همانند کنترل ToolStripButton، میتوانید برای این کنترل آیکن کوچکی را با استفاده از خاصیت Image تعیین کنید.
آیتم ToolStripDropDownButton
این آیتم بسیار شبیه به آیتم ToolStripSplitButton است، از این جهت که هنگامی که بر روی آن کلیک میکنید یک منوی بازشونده نمایش داده میشود. تنها تفاوت بین آنها این است که DropDownButton یک تصویر ساده است، و هنگامی که بر روی آن کلیک میکنید تنها منو را نمایش میدهد. پس هدف DropDownButton فقط نمایش منو است. برای اضافه کردن این آیتم در لیست بازشونده بر روی DropDownButton کلیک کنید.
شیوه اضافه کردن منو بب این آیتم شبیه به کنترل ToolStripSplitButton است. همچنین میتوانید به روش مشابه با سایر کنترلها برای این آیتم یک آیکن کوچک انتخاب کنید.
آیتم ToolStripComboBox
این آیتم به شما اجازه میدهد که یک کامبو باکس را به ToolStrip اضافه کنید. این آیتم شبیه به کنترل ComboBox است. برای اضافه کردن بخشهایی به این کنترل از خاصیت Items استفاده کنید. همچنین میتوانید از رویداد SelectedIndexChanged استفاده کنید.
در شکل زیر، یک کامبو باکس با تعدادی آیتم داخل آن نمایش داده شده است.
رویداد پیش فرض این کنترل کلیک است، پس برای استفاده از رویداد SelectedIndexChanged به قسمت رویدادها در پنجره Properties رفته و بر روی قسمت جلوی نام این رویداد دوبار کلیک کنید تا کنترل کننده رویداد آن به صورت خودکار برای شما نوشته شود.
آیتم ToolStripTextBox
این آیتم نمایانگر یک جعبه متن است. این کنترل شبیه به کنترل TextBox است و خاصیت بسیار مهم آن Text است که هنگام تغییر آن رویداد TextChanged اتفاق می افتد.
به این نکته توجه کنید که رویداد پیشفرض این آیتم کلیک است. اگر میخواهید یک کنترل کننده رویداد به آن اضافه کنید به پنجره Properties رفته و در قسمت رویدادها، رویداد TextChanged را پیدا و بر روی آن دوبار کلیک کنید تا کنترل کننده رویداد آن اضافه شود.
آیتم ToolStripSeparator
تنها هدف این آیتم جدا کردن آیتمها، به قسمتهای مرتبط با هم است.
همانطور که در شکل بالا میبینید، این آیتم کنترل ToolStrip را به قسمتهای مختلفی تقسیم میکند.
آیتم ToolStripProgressBar
از این کنترل، برای نمایش روند پیشرفت یک عملیات مانند ذخیره کردن، حذف کردن یا هر عملیاتی که کاربر نیاز به صبر کردن دارد استفاده میشود. با استفاده از این آیتم یک نوار پیشرفت به کاربر نمایش داده میشود. بدون وجود این کنترل کاربر ممکن است تصور کند که برنامه قفل کرده یا کار نمیکند .
دو خاصیت مهم ToolStripProgressBar عبارتند از: Step و Value. خاصیت Value تعیین کننده وضعیت جاری نوار پیشرفت است و خاصیت Step تعیین میکند که با فراخوانی متد ()PerformStep چه مقدار به خاصیت Value اضافه شود. به عنوان مثال، مقدار این خاصیت را برابر 1 قرار داده و یک کنترل Timer از قسمت Components جعبه ابزار بر روی فرم قرار دهید. مقدار خاصیت Enabled تایمر را به true تغییر داده و بر روی آن دوبار کلیک کنید تا کنترل کننده رویداد Tick ایجاد شود. سپس کد زیر را درون آن قرار دهید :
toolStripProgressBar1.PerformStep();
متد ()PerformStep هر 100 میلی ثانیه یک بار (این مقدار برابر خاصیت interval تایمر است) مقدار خاصیت value کنترل ToolStripProgressBar (که برابر خاصیت Step است) یک واحد افزایش میدهد. برنامه را اجرا و نتیجه رامشاهده کنید.
اضافه کردن ToolTip به آیتمهای ToolStrip
هر آیتم دارای خاصیتی به نام ToolTipText است که مشخص کننده متنی است که، هنگام قرار دادن ماوس بر روی آیتم نمایان میشود. به این نکته توجه کنید که ابتدا مقدار خاصیت ShowItemToolTips کنترل ToolStrip را به true تغییر دهید.
استفاده از خاصیتهای و Overflow
هنگامی که شما تعداد زیادی آیتم به کنترل ToolStrip اضافه کنید برای آیتمهای بعدی چه اتفاقی افتد؟ به عبارت دگیر برای آیتمهای بعدی فضای کافی وجود ندارد. به طور پیشفرض مقدار خاصیت CanOverflow برابر true است. این کار سبب میشود که هنگامی که فضای کافی در کنترل ToolStip وجود ندارد آیتمها در منوی مخفی که با یک دکمه کوچک در دسترس است قرار گیرند
همچنین میتوانید مقدار خاصیت Overflow از هر آیتم را برابر Always قرار دهید. این کار سبب میشود که حتی زمانی که فضای کافی در کنترل وجود داشته باشد آیتم در منوی مخفی قرار گیرد.