ایجاد یک برنامه ویندوزی ساده

وقت آن رسيده است که برنامه نويسي ويژوال را تجربه کنيد. به اين نکته توجه کنيد که اين درس به شما نحوه ايجاد يک برنامه ويندوزي که در آن از يک اداره کننده رويداد (event-handling) استفاده شده است، را نشان می‌دهد. من هر مرحله را به صورت گام به گام انجام داده و به طور مختصر در مورد هر کدام توضيح می‌دهم. مفاهيم فرم، کنترل، کنترل کننده رويداد (event-handling) و برخي قسمتهاي Visual Studio در طراحي يک برنامه ويندوزي مورد استفاده قرار می‌گیرد و در مورد هر کدام از آنها در درسهاي مربوطه‌شان بحث خواهد شد. برنامه ويژوال استودیو را باز کنيد و به مسير Create New Project رفته، گزينه (Net FrameWork.) Windows forms App را انتخاب نماييد. يک Windows forms App نوعي برنامه است که داراي يک رابط کاربر گرافيکي می‌باشد. نام پروژه را MyFirstWindowsApplication بگذارید:
creating-a-simple-windows-forms-application-csharp-01

creating-a-simple-windows-forms-application-csharp-02

creating-a-simple-windows-forms-application-csharp-03
بر روي دکمه OK کليک کنيد تا يک فرم خالي ظاهر شود. تب انتخاب شده نشان می‌دهد که شما در حال تماشاي فايل Form1.cs از محيط طراحي هستيد.
creating-a-simple-windows-forms-application-csharp-04
در حال حاضر بر روي کد فايلي که باعث فزوده شدن قابليت به فرم می‌شود تمرکز می‌کنیم. form را می‌توان در دو حالت مشاهده کرد، حالت طراحي و حالت کد. در حالت طراحي می‌توانید فرم، کنترل‌های ويژوال و غير ويژوال را مشاهده نماييد. شکل زير يک فرم را نشان می‌دهد که شما می‌توانید با استفاده از دستگیره‌های کناري (که با فلش نشان داده شده است) در محيط طراحي اندازه آنرا تغيير دهيد.
creating-a-simple-windows-forms-application-csharp-05

اضافه کردن کنترل‌ها به فرم

همه کنترل‌ها در جعبه ابزار يا Toolbox قرار دارند. Toolbox از مسير سربرگ جعبه ابزار که به صورت پيش فرض در سمت چپ محيط IDE قرار دارد قابل دسترسي است. اگر جعبه ابزار را پيدا نکرديد می‌توانید از مسير View > Toolbox به آن دسترسي يابيد. براي نمايش جعبه ابزار کافيست با ماوس بر روي آن لحظه‌ای توقف کرده و يا کليک نماييد.
creating-a-simple-windows-forms-application-csharp-06
Toolbox به قسمتهايي تقسيم شده است، مثلاً کنترل‌های پر کاربرد در قسمت Common Controls قرار دارند. براي باز کردن يک دسته و نمايش کنترل‌های آن کافيست بر روي نام دسته کليک کنيد. Toolbox در حالت پيشفرض مخفي می‌شود (خاصيت auto-hide). اگر شما اين حالت را دوست نداريد می‌توانید بر روي آيکون سنجاق شکل کنار دکمه close جعبه ابزار کليک کنيد تا Toolbox ثابت بماند و مخفي نشود. براي اضافه کردن يک کنترل به فرم می‌توانید بر روي آن دوبار کليک کنيد تا به فرم اضافه شود همچنين می‌توانید کنترل را از جعبه ابزار بر روي فرم کشيده و رها کنيد (drag and drop). به اين نکته توجه کنيد که شما فقط می‌توانید کنترل‌ها را به ناحيه کاربر فرم اضافه کنيد. ناحيه کاربر ناحيه خالي فرم است. براي حذف يک کنترل از روي فرم آن را انتخاب کنيد و سپس دکمه Delete بر روي صفحه کليد را فشار دهيد. يک کنترل دکمه (button) را به فرم اضافه کنيد. بيشتر کنترل‌ها قابليت تغيير اندازه را دارند. حال مکان و اندازه کنترل ذکر شده را مانند شکل زير تغيير دهيد.
creating-a-simple-windows-forms-application-csharp-07

تغيير خاصيت کنترل‌ها

شما می‌توانید برخي از خواص فرم و کنترل‌ها را تغيير دهيد. براي اين کار از پنجره Properties براي مشاهده و تغيير مقادير همه خواص در دسترس يک کنترل انتخاب شده در صفحه طراحي استفاده می‌کنیم. به اين نکته توجه کنيد که برخي از خواص در پنجره Properties نمايش داده نمی‌شوند و فقط از طريق کد می‌توان به آنها دست يافت. يک کنترل را با استفاده از کليک کردن بر روي آن در صفحه طراحي انتخاب کنيد. براي اينکه به شما نشان دهيم که چطور می‌توان خاصيت يک کنترل را تغيير داد، بر روي دکمه‌ای در روي فرم کليک کنيد و سپس به پنجره Properties برويد.
creating-a-simple-windows-forms-application-csharp-08
خاصيت Text را پيدا کنيد و آن را به Click Me تغيير دهيد.
creating-a-simple-windows-forms-application-csharp-09
مشاهده می‌کنید که متن کنترل button تغيير می‌کند.
creating-a-simple-windows-forms-application-csharp-10
همچنين می‌توانید با کليک بر روي فرم خاصيت Text آن را نيز تغيير دهيد. به اين نکته توجه کنيد که براي انتخاب فرم بايد بر روي يک منقطه خالي از آن کليک کنيد نه يک کنترل که بر روي آن قرار دارد.

اضافه کردن يک کنترل کننده رويداد (Event Handler) به کنترل

در بخش آخر اين آموزش قصد داريم که به شما نحوه اضافه کردن يک کنترل کننده رويداد را به کنترل آموزش دهيم. کنترل کنند رويداد يا Event Handler ، قسمتي از برنامه است که مسئوليت کنترل رويدادها را بر عهده دارد. رويداد وقتي به وقوع می‌پیوندد که يک اتقاف معين رخ دهد. Event Handler هم براي کنترل کردن يک رويداد به کار می‌رود. در مورد جزييات اداره کردن رويدادها در يک بخش جداگانه بحث خواهيم کرد. هر کنترل يک رويداد پيشفرض مخصوص به خود دارد.

به عنوان مثال رويداد پيشفرض کنترل دکمه، Click و رويداد پيشفرض کنترل فرم Load می‌باشد. کنترل کننده‌های رويداد متدهايي هستند که به رويداد وابسته‌اند و وقتي اجرا می‌شوند که رويدادها رخ دهند. راه ساده براي اضافه کردن يک کنترل کننده رويداد دابل کليک کردن بر روي کنترل در محيط طراحي می‌باشد. ناگفته نماند که اين کار باعث اضافه شدن کنترل کننده رويداد به رويداد پيشفرض می‌شود. براي روشن شدن اين مطلب بر روي دکمه button در محيط طراحي کليک کنيد. ويژوال استوديو به صورت خودکار يک کنترل کننده رويداد ايجاد کرده و آن را به رويداد Click کنترل می‌چسباند. همزمان با ايجاد کنترل کننده رويداد شما وارد قسمت کد نويسي می‌شوید و نشانگر ماوس نيز در داخل اداره کننده رويداد قرار می‌گیرد. حال همه چيزي که شما نياز داريد نوشتن کدي است که هنگام وقوع رويداد اجرا می‌شود.
creating-a-simple-windows-forms-application-csharp-11
در مورد ساير قسمت‌های کد در درس‌های آينده بحث خواهيم کرد. کد MessageBox.Show(“You clicked the button!”); را در داخل کنترل کننده رويداد مربوط به رويداد Click به صورت زير بنويسيد.

private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("You clicked the button!");
}

کلاس MessageBox به شما اجازه می‌دهد که يک جعبه متن را براي نمايش يک پيغام يا اطلاعات فوري به کاربر فراخواني کنيد. متد Show باعث نمايش يک متن خاص در جعبه متن می‌شود. در مورد کلاس MessageBox در درسهاي آينده توضيح می‌دهیم. برنامه را اجرا کرده و بر روي دکمه کليک کنيد. با اجراي برنامه يک پنجره پيغام که شامل پيامي است که به عنوان آرگومان به متد Show ارسال کرده‌اید نمايش داده خواهد شد.
creating-a-simple-windows-forms-application-csharp-12
راه ديگر براي اضافه کردن يک کنترل کننده رويداد به رويداد کنترل‌ها مخصوصاً به رويدادهاي غير پيشفرض استفاده از پنجره Properties است. براي روشن شدن اين مطلب اجازه دهيد که رويداد Load را به فرم اضافه کنيم. براي برگشتن به محيط طراحي هم می‌توانیم بر روي تب Design کليک کرده وهم از کليدهاي ترکيبي Shift + F7 استفاده کنيم.
creating-a-simple-windows-forms-application-csharp-15
کنترل form انتخاب کرده و سپس از پنجره Properties رویدادهای آن را پيدا کنيد. رويدادها در پنجره Properties به وسيله يک آيکون جرقه نمايش داده شده‌اند. اگر اين آيکون را نيافتيد مطمئن شويد که کنترل در محيط طراحي انتخاب شده باشد.
creating-a-simple-windows-forms-application-csharp-13
حال پنجره Properties ليستي از رويدادهاي مربوط به کنترل انتخاب شده در محيط برنامه نويسي را نشان می‌دهد. رويداد Load مربوط به کنترل form را پيدا کنيد. با کليک بر روي منوي باز شونده (combo box) کنار آن، ليستي از متدهاي موجود براي اين رويداد نشان داده خواهد شد. سپس می‌توانید يک متد براي الحاق به اين رويداد انتخاب کنيد. همچنين می‌توان با دابل کليک بر روي رويداد انتخاب شده در پنجره Properties يک کنترل کننده رويداد جديد ايجاد کرد که در اين صورت به صورت خودکاروارد محيط کدنويسي شده و کنترل کننده رويداد مناسب براي شما ايجاد می‌شود. کد پر رنگ شده زير را در رويداد Load بنويسيد.

private void Form1_Load(object sender, EventArgs e)
{
    button1.Text = "Text changed by the Load event";
}

اين دستور خاصيت Text مربوط به دکمه واقع بر روي فرم را تغيير می‌دهد. رويداد Load فرم وقتي روي می‌دهد که بارگذاري فرم تمام شود. بنابراين با هر بار اجرای برنامه، متن داخل کنترل button تغيير می‌کند.
creating-a-simple-windows-forms-application-csharp-14
حال شما با موفقيت يک گرداننده رويداد را با استفاده از ابزارهاي موجود در Visual Studio و Visual C# Express ايجاد کرديد.