ویندوز فرم

ویندوز فرم یا همان فرم ها پنجره هایی هستند که شما در برنامه های تحت ویندوز می بینید. شما می توانید در یک برنامه بیش از یک فرم داشته باشید. هر فرم از خواص و متدهای کلاس 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 را برای ورود می فشارد. برای این خاصیت موارد زیادی وجود دارد که در درس های آینده به آنها می پردازیم.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. عباس زاده پاسخ دادن

    با سلام و وقت به خیر
    ممنون واقعا عالی هست مطالب و قابل فهم من c# دارم از همین سایت می خونم فقط اگر امکانش هست یک سری برنامه را در محیط فرم هم توضیح بدید ممنوم میشم

    • یونس ابراهیمی پاسخ دادن

      سلام، ممنون از لطفتون، چشم

  2. علی پاسخ دادن

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

    • یونس ابراهیمی پاسخ دادن

      سلام، بسیار ممنون

  3. بی نام پاسخ دادن

    سلام
    من ۱۰ ساله سی شارپ کار میکنم ولی یه نکته ریز تو این مطلب بود که تا حالا نمیدوئنستم
    خیلی آقایی دمت گرم

    • یونس ابراهیمی پاسخ دادن

      سلام، مرسی
      ممنون میشم سایت رو به دوستاتون معرفی بفرمایید

  4. maryam پاسخ دادن

    سلام من میخوام عضو انجمن بشم ولی نمیتونم همش در رابطه با ایمیلم بهم خطا میده.کلی هم سوال دارم چیکارکنم؟؟؟

    • یونس ابراهیمی پاسخ دادن

      سلام، رمز و پسورد رو به جیمیلتون ارسال کردم