ويندوز فرم
ويندوز فرم يا همان فرمها، پنجرههایی هستند که شما در برنامههای تحت ويندوز میبینید. شما میتوانید در يک برنامه بيش از يک فرم داشته باشيد. هر فرم از خواص و متدهاي کلاس System.Windows.Forms.Form ارث میبرد. فضاي نام System.Windows.Forms.Form تمامي اجزايي را که شما براي ساخت فرمها و کنترلها نياز داريد را، در بر دارد. در شکل زير شما نام قسمتهای مختلف فرم را مشاهده میکنید.
در قسمت بالا، نوار عنوان (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 قرار گرفته شده است.
اگر شما میخواهید يکي از دکمههای Minimize يا Maximize را غير فعال کنيد بايد از خواص MinimizeBox و MaximizeBox استفاده کنيد و مقدار آنها را به False تغيير دهيد.
در فرم بالا دکمههای Maximize و Minimize مخفي شدهاند. متاسفانه شما نمیتوانید فقط دکمه Close را غير فعال کنيد.
تغيير حالت حاشیهی فرم
شما میتوانید حالت حاشیهی فرم را تغيير دهيد. براي مثال، شما میخواهید که کاربر قادر به تغيير سايز فرم نباشد، در صورتيکه در حالت پيشفرض حاشیهی فرم به کاربر اجازهی اينکار را میدهد. میتوانیم مقادير مختلفي از نوع شمارشي System.Windows.Forms.FormBorderStyle را به خاصيت FormBorderStyle بدهيم.
مقدار | توضيح | |
None | فرم هيچ حاشیهای ندارد. | |
FixedSingle | فرم يک حاشیهی خطي بدون قابليت تغيير سايز را دارد. | |
Fixed3D | فرم يک حاشیهی سه بعدي بدون قابليت تغيير سايز را دارد. | |
FixedDialog | در اين حالت يک خط ضخيم دور فرم قرار دارد و سايز فرم قابل تغيير نيست، همچنين دکمههای minimize و Maximize در آن وجود ندارند. | |
Sizable | حالت پيشفرض است. در اين حالت سايز فرم قابل تغيير است. | |
FixedToolWindow | فرم داراي حاشیهای است که سايز آن غير قابل تغيير میباشد و فقط داراي دکمهی Close است. اين حالت براي پنجرههای ابزار بکار میرود. مانند پنجرهی ابزار در Office 2003 | |
SizableToolWindow | دقیقاً مانند FixedToolWindow است ولي قابليت تغيير سايز دارد. |
تصاوير زير مربوط به حالات مختلف خاصيت FormBorderStyle است.
None
FixedSingle
Fixed3D
FixedDialog
Sizable
FixedToolWindow
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 را براي ورود میفشارد. براي اين خاصيت موارد زيادي وجود دارد که در درسهای آينده به آنها میپردازیم.
سلام میخام عنوان فرم رو وسط چین کنم چطور باید این کار رو کنم ؟
اگ میشه برام ایمیل کنید
سلام، ممنون میشم از این به بعد سوالاتتونو تو بخش پرسش و پاسخ سایت مطرح بفریمایید:
سلام اگر ممکنه کتابی رو در مورد کاربرد واقعی سی شارپ معرفی کنید مثلا برای مدیریت کتابخانه همراه با پایگاه داده باشه ممنون میشم
سلام
من یک نرم افزار بانک اطلاعاتی میخام بنویسم و نیازه که روی سیستم کاربرایی که هیچی از کامپیوتر بلد نیستن نصب بشه.
میخاستم ببینم اگه دیتابیس sqlباشه بعد از انتشار نرم افزار حتما لازمه که sqlنصب بشه یا میشه از دیتابیس های کم حجمتر و راحتتر برای نصب استفاده کرد؟
سلام
لینک 1
لینک 2
لینک 3
سلام ایا در اندروید هم به همین شکل برنامه نویسی(کدنویسی) صورت میگیره یا به شکل دیگری هست؟
سلام ببخشید میشه برنامه الگوریتم مرتب سازی ادغامی رو برام بنویسین چون مال پروژه این ترممه نمیتونم بنویسم و ننویسم سه واحد میفتم ممنون میشم اگ کمکم بکنین
سلام،
ایمیلتون رو چک بفرمایید
با عرض سلام و وقت بخیر
از آموزش بسیار خوبتون لذا بردم سپاسگزارم.
آیا میشه عنوان فرم رو (caption) رو وسط چین کرد؟ یعنی وسط نوار بالایی فرم نشان داده شود؟
ممنون میشم اگه راهنمایی بفرمایید.
سلام، لطف دارین
سلام من میخوام عضو انجمن بشم ولی نمیتونم همش در رابطه با ایمیلم بهم خطا میده.کلی هم سوال دارم چیکارکنم؟؟؟
سلام، رمز و پسورد رو به جیمیلتون ارسال کردم
سلام
من 10 ساله سی شارپ کار میکنم ولی یه نکته ریز تو این مطلب بود که تا حالا نمیدوئنستم
خیلی آقایی دمت گرم
سلام، مرسی
ممنون میشم سایت رو به دوستاتون معرفی بفرمایید
سلام.مطالب بسیار خوبی در سایت قرار دادید. از آموزش های جامع شما متشکرم.
سلام، بسیار ممنون
با سلام و وقت به خیر
ممنون واقعا عالی هست مطالب و قابل فهم من c# دارم از همین سایت می خونم فقط اگر امکانش هست یک سری برنامه را در محیط فرم هم توضیح بدید ممنوم میشم
سلام، ممنون از لطفتون، چشم