کنترل Button

وقتی که بر روی کنترل Button کلیک می‌کنیم دستوراتی اجرا می‌شود، و این معمولترین استفاده‌ای است که از این کنترل می‌شود. دکمه‌ها به نوعی برای تأیید یا لغو یک عمل و یا باز کردن کادرهای محاوره‌ای به کار می‌روند. کنترل Button دارای خواصی است که در جدول زیر تعدادی از این آنها ذکر شده است :

خواص توضیح
AutoEllipsis اگر طول یک متن برای Button انتخاب می‌کنیم زیاد باشد تمام متن نمایش داده نشده و در انتهای آن سه نقطه (…) قرار داده می‌شود
AutoSize اندازه کنترل را با متن داخل آن متناسب می‌کند
FlatStyle برای تعیین شکل button به کار می‌رود.
Popup باعث صاف شدن کنترل می‌شود. در این حالت اگر با ماوس بر روی کنترل توقف کنید، کنترل به حالت برجسته در می‌آید.
Flat باعث صاف شدن کنترل می‌شود. در این حالت اگر نشانگر ماوس را بر روی کنترل ببریم، رنگ پس زمیه آن تغییر می‌کند.
Enabled اگر مقدار این خاصیت false باشد بر روی button نمی‌توان کلیک کرد.
Image می‌توان یک تصویر اختیاری به کنترل اختصاص داد.
ImageAlign برای تراز کردن عکس اختصاص داده شده به button به کار می‌رود.
Text عنوانی است که به کنترل اختصاص داده می‌شود.
Visible مشخص می‌کند که آیا کنترل button در روی فرم قابل رویت باشد یا نه

فقط با ویرایش خواص یک button نمی‌توان از آن استفاده کرد. بلکه کنترل دکمه برای انجام برخی اعمال نیاز به واکنش به رویدادها دارد. در زیر معمولترین رویدادهای کنترل button آمده است.

رویداد توضیح
Click وقتی روی می‌دهد که بر روی دکمه کلیک کنید.
Enter وقتی روی می‌دهد که کنترل، کنترل فعال روی فرم باشد.
Leave وقتی روی می‌دهد که ماوس کنترل را ترک کند.
LocationChanged وقتی روی می‌دهد که مکان دکمه تغییر کند.
MouseDown وقتی روی می‌دهد که نشانگر ماوس بر روی کنترل باشد و دکمه ماوس رو به پایین فشار داده شود.
MouseEnter وقتی روی می‌دهد که ماوس وارد کنترل دکمه می‌شود.
MouseHover وقتی روی می‌دهد که ماوس بر روی کنترل دکمه برای لحظاتی توقف کند.
MouseUp وقتی روی می‌دهد که دکمه ماوس فشار داده شده و رها شود.
MouseLeave وقتی روی می‌دهد که نشانگر موش دکمه را ترک می‌کند.

همانطور که قبلاً مشاهده کردید، رویداد پیشقرض کنترل دکمه رویداد Click می‌باشد. اجازه دهید که با ایجاد برنامه‌هایی با رویدادهای دیگر نیز آشنا شویم. یک رفم جدید ایجاد کرده و یک کنترل button را از toolbox به داخل آن درگ کنید. لازم به تغییر خاصیت text کنترل دکمه نمی‌باشد. در پنجره properties، خاصیت Name دکمه را یافته و ان را به buttonSample تغییر دهید. حال در هنگام کدنویسی می‌توانیم با استفاده از این نام به این کنترل مراجعه کنیم. برنامه ما رویدادهای MouseEnter و MouseLeave را شرح می‌دهد. برای دستیابی به این رویدادها کافیست که از پنجره properties بر روی دکمه‌ای که به صورت رعد و برق است کلیک کنید.
button-control-12-19-10-01
ابتدا رویداد MouseEnter را یافته و بر روی آن دوبار کلیک کنید. ویژوال استودیو یک کنترل کننده رویداد برای این رویداد ایجاد می‌کند. کد پر رنگ شده زیر را در داخل متد بنویسید.

private void buttonSample_MouseEnter(object sender, EventArgs e)
{
    buttonSample.Text = "Mouse has entered!";
}

بعد از تایپ کد فوق به پنجره Properties برگشته و حال رویداد MouseLeave را انتخاب و بر روی آن دوبار کلیک کنید تا یک کنترل کننده رویداد نیز برای آن ایجاد شود: کد پر رنگ شده زیر را نیز داخل متد کنترل کننده رویداد بنویسید .

private void buttonSample_MouseLeave(object sender, EventArgs e)
{
    buttonSample.Text = "Mouse has left!";
}

حال برنامه را اجرا کنید. مشاهده می‌کنید که با قرار گرفت نشانگر ماوس بر روی کنترل button خاصیت text آن تغییر می‌کند. و از طرف دیگر وقتی که نشانگر از کنترل دکمه دور می‌شود این خاصیت دوباره تغییر می‌کند.
button-control-12-19-10-02
button-control-12-19-10-03