ويندوز فرم

ويندوز فرم يا همان فرم‌ها، پنجره‌هایی هستند که شما در برنامه‌های تحت ويندوز می‌بینید. شما می‌توانید در يک برنامه بيش از يک فرم داشته باشيد. هر فرم از خواص و متدهاي کلاس System.Windows.Forms.Form ارث می‌برد. فضاي نام System.Windows.Forms.Form تمامي اجزايي را که شما براي ساخت فرم‌ها و کنترل‌ها نياز داريد را، در بر دارد. در شکل زير شما نام قسمت‌های مختلف فرم را مشاهده می‌کنید.
windows-forms-01
در قسمت بالا، نوار عنوان (Caption Bar) قرار دارد. نوار عنوان از يک آيکن (Icon)، يک عنوان (Caption)، و يک جعبه‌ی کنترل (Control Box) تشکيل شده است. جعبه‌ی کنترل ( Control Box) دکمه‌های کوچکنمايي (Minimizing)، بزرگنمايي (Maxmizing)، و بستن (Closing) را در بر دارد. قسمت داخلي يا همان Client Area مکاني است که، ما کنترل‌ها را در آن قرار می‌دهیم. قسمت حاشيه يا Border که شامل قسمت Caption Bar نيز می‌شود، به شما اجازه می‌دهد که سايز فرم را تغيير دهيد. در جدول زير برخي از خواص مفيد کلاس فرم را مشاهده می‌کنید:

خاصيت توضيح
AcceptButton نام يک دکمه در اين خصوصيت تعيين می‌شود و هرگاه دکمه‌ی Enter فشار داده شود، آن دکمه عمل خواهد کرد.
CancelButton در اين خصوصيت نيز مانند خصوصيت قبل نام يک دکمه در آن قرار می‌گیرد و با زدن دکمه Esc آن دکمه عمل می‌کند.
ControlBox اين خصوصيت مشخص می‌کند که قسمت جعبه‌ی کنترل (Control Box) نمايش داده شود يا خير. جعبه‌ی کنترل (Control Box) قسمتي از فرم است که دکمه‌های کوچکنمايي، بزرگنمايي و بستن فرم در آن قرار می‌گیرند.
DesktopBounds به وسیله‌ی اين خاصيت می‌توانید به سايز و محل قرار گيري فرم در ميز کار دسترسي داشته باشيد.
Font نوع قلمي که در فرم مورد استفاده قرار می‌گیرد. تمامي کنترل‌ها از اين خاصيت استفاده می‌کند.
FormBorderStyle اين خاصيت نوع حاشیه‌ی فرم را مشخص می‌کند.
HelpButton يک دکمه‌ی Help قبل از دکمه‌ی Close بالاي فرم قرار می‌دهد (دکمه‌های Minimize و Maximize غير فعال می‌شوند).
Icon اين خاصيت Icon فرم را مشخص می‌کند (آيکني که در قسمت Caption Bar وجود دارد).
Location مختصات فرم را در صفحه‌ی نمايش مشخص می‌کند.
MainMenuStrip يک منو را مشخص می‌کند تا در فرم به عنوان منوي اصلي استفاده شود.
MaximizeBox مشخص می‌کند که دکمه‌ی Maximize در بالاي فرم نمايش داده شود يا خير.
MinimizeBox مشخص می‌کند که دکمه‌ی Maximize در بالاي فرم نمايش داده شود يا خير.
Name نام فرم که به عنوان مرجع براي استفاده در محيط کد نويسي انتخاب می‌شود.
ShowIcon مشخص می‌کند که آيکن فرم نمايش داده شود يا خير.
Size سايز فرم را مشخص می‌کند.
StartPosition اين خاصيت محل نمايش فرم در صفحه را مشخص می‌کند.
Text اين خاصيت متني را که در قسمت Caption Bar قرار می‌گیرد را مشخص می‌کند.

در اين قسمت برخي از متدهاي مهم کلاس فرم را مشاهده می‌کنید.

متد توضيح
Activate() Focus را به فرم منتقل و فرم را فعال می‌کند .
CenterToScreen() فرم را به وسط صفحه منتقل می‌کند.
Close() فرم را می‌بندد.
Hide() فرم جاري را پنهان می‌کند.
OnLoad() وقتي که رويداد Load رخ می‌دهد اين متد اجرا می‌شود.
Show() فرم را نمايش می‌دهد. (آشکار می‌سازد)

در اين قسمت رویدادهای مربوط به فرم را مشاهده می‌کنید.

رويداد توضيح
Activated زماني رخ می‌دهد که فرم فعال باشد.
Click زماني رخ می‌دهد که بر روي فرم کليک می‌شود.
Deactivated اين رويداد زماني رخ می‌دهد که فرم حالت Focus خود را از دست بدهد.
FormClosed زماني رخ می‌دهد که فرم بسته شود.
FormClosing زماني رخ می‌دهد که فرم در حال بسته شدن است. به شما اجازه می‌دهد براي بسته شدن فرم مکث کنيد.
HelpButtonClicked زماني رخ می‌دهد که بر روي دکمه‌ی Help کليک شود.
KeyPress اين رويداد زماني رخ می‌دهد که يک کليد بر روي صفحه کليد فشرده شود.
Load زماني رخ می‌دهد که بارگذاري فرم تمام شده است ولي هنوز نمايش داده نشده است.
MenuComplete زماني که يک منو از فرم حالت Focus خود را از دست می‌دهد.
MenuStart زماني که بر روي يک منو Focus می‌شود.
ResizeBegin زماني رخ می‌دهد که فرم شروع به تغيير سايز می‌کند.
ResizeEnd زماني رخ می‌دهد که تغيير سايز فرم تمام می‌شود.
Shown زماني رخ می‌دهد که فرم براي اولين بار نمايش داده می‌شود.

کلاس Form، فرزند کلاس اصلي System.Windows.Forms.Control است بنابراين متدها و خواص تعريف شده‌ی اين کلاس توسط کلاس Form ارث بري می‌شوند.

تغيير دادن جعبه‌ی کنترل (Control Box)

از خاصيت Control Box براي پنهان کردن و يا نمايش دادن قسمت جعبه‌ی کنترل (Control Box) استفاده می‌شود. اين خاصيت وقتي که شما می‌خواهید دکمه‌های Minimize و Maximize کنترل را غير فعال کنيد و يا از طريق کد نويسي فرم را ببنيد، بسيار کار آمد می‌شود. در تصوير زير مقدار خاصيت ControlBox برابر False قرار گرفته شده است.
windows-forms-02
اگر شما می‌خواهید يکي از دکمه‌های Minimize يا Maximize را غير فعال کنيد بايد از خواص MinimizeBox و MaximizeBox استفاده کنيد و مقدار آنها را به False تغيير دهيد.
windows-forms-03
در فرم بالا دکمه‌های Maximize و Minimize مخفي شده‌اند. متاسفانه شما نمی‌توانید فقط دکمه Close را غير فعال کنيد.

تغيير حالت حاشیه‌ی فرم

شما می‌توانید حالت حاشیه‌ی فرم را تغيير دهيد. براي مثال، شما می‌خواهید که کاربر قادر به تغيير سايز فرم نباشد، در صورتيکه در حالت پيشفرض حاشیه‌ی فرم به کاربر اجازه‌ی اينکار را می‌دهد. می‌توانیم مقادير مختلفي از نوع شمارشي System.Windows.Forms.FormBorderStyle را به خاصيت FormBorderStyle بدهيم.

مقدار توضيح
None فرم هيچ حاشیه‌ای ندارد.
FixedSingle فرم يک حاشیه‌ی خطي بدون قابليت تغيير سايز را دارد.
Fixed3D فرم يک حاشیه‌ی سه بعدي بدون قابليت تغيير سايز را دارد.
FixedDialog در اين حالت يک خط ضخيم دور فرم قرار دارد و سايز فرم قابل تغيير نيست، همچنين دکمه‌های minimize و Maximize در آن وجود ندارند.
Sizable حالت پيشفرض است. در اين حالت سايز فرم قابل تغيير است.
FixedToolWindow فرم داراي حاشیه‌ای است که سايز آن غير قابل تغيير می‌باشد و فقط داراي دکمه‌ی Close است. اين حالت براي پنجره‌های ابزار بکار می‌رود. مانند پنجره‌ی ابزار در Office 2003
SizableToolWindow دقیقاً مانند FixedToolWindow است ولي قابليت تغيير سايز دارد.

تصاوير زير مربوط به حالات مختلف خاصيت FormBorderStyle است.
windows-forms-04
None
windows-forms-05
FixedSingle
windows-forms-06
Fixed3D
windows-forms-07
FixedDialog
windows-forms-09
Sizable
windows-forms-09
FixedToolWindow
windows-forms-10
SizableToolWindow

آيکن هاي فرم

از خاصيت Icon براي تغيير آيکن بالاي فرم استفاده می‌شود. بر روي دکمه‌ی Browse در کنار خاصيت Icon در پنجره‌ی Properties کليک کنيد و سپس فايلي را با پسوند ico. انتخاب کنيد (ico. پسوند فايلهاي تصويري آيکن است). خاصيت ShowIcon به شما اجازه می‌دهد که، آيکن را در نوار عنوان فرم (caption bar) پنهان يا آشکار کنيد.

دکمه‌های Accept و Cancel

شما می‌توانید يک دکمه را به فرم اضافه کنيد که يکي از دو نوع Accept يا Cancel باشد. براي اين کار از خواص AcceptButton و CancelButton استفاده می‌شود. اگر دکمه‌ی شما از نوع Accept باشد، زماني که فرم فعال باشد و کاربر دکمه‌ی Enter را فشار دهد، آنگاه رويداد Click دکمه رخ می‌دهد. دکمه‌ی Cancel زماني رخ می‌دهد که دکمه‌ی Escape بر روي صفحه کليد فشرده شود. فقط به پنجره Properties رفته، خاصيت مورد نظر را پيدا کنيد و بر روي نوار کرکره‌ای آن کليک کنيد تا نام تمامي دکمه‌های فرم براي شما نمايش داده شود. دکمه مورد نظر را انتخاب کنيد. براي مثال شما می‌خواهید يک فرم ورود (login) را ايجاد کنيد. شما می‌توانید دکمه‌ی ورود را براي خاصيت AcceptButton انتخاب کنيد. در اينصورت به آساني، وقتي کاربر پسورد خود را وارد کرد کليد Enter را براي ورود می‌فشارد. براي اين خاصيت موارد زيادي وجود دارد که در درس‌های آينده به آن‌ها می‌پردازیم.