دسامبر
6
2015

خاصیت Anchor در فرم های سی شارپ

یکی از مشکلات قرار دادن کنترل ها بر روی کنترل فرم این است که مکان آنها هنگام تغییر سایز فرم تغییر نمی کند و در جای قبلی می مانند. به مثال زیر توجه کنید :
یک فرم ساده همراه با چند کنترل در داخل آن ایجاد می کنیم. وقتی برنامه را اجرا می کنیم، هیچ چیز اشتباهی به چشم نمی خورد.

 

anchor-dock-01

اما وقتی فرم را به وسیله کشیدن گوشه های آن و یا با زدن دکمه بیشینه، بزرگ می کنیم، مشکل معلوم می شود.

anchor-dock-02

به عکس بالا که اندازه آن به اندازه صفحه دسکتاپ بزرگ کرده ایم توجه کنید. همانطور که مشاهده می کنید مکان کنترل ها با افزایش اندازه فرم تغییر نمی کند. برای برطرف کردن این مشکل می توان از خاصیت Anchor که در بیشتر کنترل ها در دسترس است، استفاده نمود. این خاصیت رفتار کنترل ها را در هنگام تغییر سایز فرم تعیین می کند. می توانیم مشخص کنیم که کنترل به کدام گوشه فرم بچسبد.همچنین تعیین کنیم که کنترل ها چگونه تغییر سایز دهند.

اجازه بدهید که خاصیت Anchor را به کنترل هایمان اختصاص دهیم تا رفتار طبیعی تری هنگام تغییر سایز فرم از خود نشان دهند. خاصیت Anchor یک مقدار از نوع شمارشی System.Windows.Forms.AnchorStyles قبول می کند.

 

مقدار شمارشی                                            توضیح
Bottom کنترل به قسمت پایینی مکان یا کنترلی که در آن قراردارد، می چسبد.
Left کنترل به قسمت چپ مکان یا کنترلی که در آن قراردارد، می چسبد.
Right کنترل به قسمت راست مکان یا کنترلی که در آن قراردارد، می چسبد..
Top کنترل به بالای مکان یا کنترلی که در آن قراردارد، می چسبد.
None کنترل به هیچ قسمتی از مکان یا کنترلی که در آن قراردارد، نمی چسبد.

این خاصیت در همه کنترل ها در حالت پیشفرض ترکیبی از مقادیر Top و Left است. وقتی مقادیر AnchorStyles را به خاصیت Anchor تخصیص می دهیم، فاصله کنترل از گوشه خاصی از فرم با وجود تغییر اندازه فرم حفظ می شود. به عنوان مثال اجازه بدهید که کنترل دکمه زیر را به سمت راست فرم بچسبانیم.

 

anchor-dock-05

 

ویژوال استودیو و ویژوال سی شارپ دارای ابزاری برای تعیین AnchorStyles می باشند. کنترلی را که می خواهید به یکی از گوشه ها بچسبانید، انتخاب کنید. به پنجره Properties رفته و خاصیت Anchor را پیدا کنید.

anchor-dock-03

 

ر روی دکمه ای که به شکل یک فلش رو به پایین است (شکل بالا) کلیک کنید تا شکل زیر ظاهر شود:

anchor-dock-04

 

مربعی که در وسط شکل زیر قرار دارد نماینده کنترل است. مربعی که به رنگ خاکستری است گوشه ای را نشان می دهد که قرار است کنترل به آن بچسبد. شما به راحتی و با کلیک بر روی این مربع ها می توانید مقادیر AnchorStyle مربوط به کنترل را اضافه یا حذف کنید. حال برای چسباندن دکمه مثال بالا به سمت چپ فرم بر روی مربع سمت راست کلیک می کنیم تا رنگ ان مانند شکل زیر خاکستری شود.

 

 

anchor-dock-06

 

برنامه را اجرا کرده و اندازه فرم را تغییر می دهیم. اندازه فاصله دکمه از گوشه راست فرم ، را در حالت عادی و در حالتی که فرم را تغییر اندازه می دهیم مقایسه می کنیم.

anchor-dock-07

anchor-dock-08

 

همانطور که مشاهده می کنید، این فاصله قبل و بعد از تغییر اندازه فرم یکسان است. حال اجازه بدهید که مقدار Bottom را هم اضافه کنیم.

anchor-dock-09

با ترکیب دو مقدار Right و Bottom، کنترل همیشه در فاصله یکسانی از گوشه سمت راست و چپ کنترل فرم قرار می گیرد. وقت آن رسیده که مقادیری را که مخالف همدیگر هستند را اضافه کنیم و مشاهده کنیم که چه اتفاقی برای کنترل می افتد. به عنوان مثال مقدار Left مخالف مقدار Right است. انتظار ما این است که کنترل با فاصله یکسانی از سمت چپ و راست فرم قرار بگیرد.

anchor-dock-10

برنامه را اجرا کرده و فرم را تغییر اندازه دهید.

anchor-dock-11

anchor-dock-12

 

اندازه دکمه در دو جهت مخالف هم تغییر می کند. اگر خاصیت Anchor کنترل را در چهار جهت مشخص کنیم اندازه دکمه به صورت افقی و عمودی در همه جهات تغییر می کند. اما وقتی مقدار خاصیت Anchor را برابر AnchorStyles.None قرار دهیم کنترل رفتار متفاوتی از خود نشان می دهد. در این حالت وقتی کنترل فرم را تغییر اندازه دهیم، کنترل به اندازه نصف تغیر اندازه فرم و در جهت تغییر اندازه آن حرکت می کند.
به عنوان مثال اگر فرم را به اندازه ۱۰۰ پیکسل و در جهت راست تغییر اندازه دهیم، کنترل به اندازه ۵۰ پیکسل به سمت راست حرکت می کند و اگر فرم را به اندازه ۱۰۰ پیکسل در جهت راست و ۵۰ پیکسل در جهت پایین تغییر اندازه دهیم، کنترل ۵۰ پیکسل در جهت راست و ۲۵ پیکسل در جهت پایین حرکت می کند.

فرستادن دیدگاه

راهنمای دانلود

برای دانلود، کافی است که بر روی لینک دانلود آن کلیک نمایید تا وارد صفحه پرداخت آنلاین شوید. بعد از وارد کردن مشخصات کارت بانکی و مبلغ، پرداخت انجام شده و لینک دانلود نمایش داده می شود.

از این که حامی پروژه را برای دانلود انتخاب نموده اید، سپاسگزاریم.

در صورت بروز هر گونه مشکل برای خرید و دانلود، لطفا از طریق ایمیل زیر با ما مکاتبه نمایید.

HamiProje@Gmail.com

تبلیغات

alibaba02

تقویم شمسی

مهر ۱۴۰۳
ش ی د س چ پ ج
« آذر    
 123456
۷۸۹۱۰۱۱۱۲۱۳
۱۴۱۵۱۶۱۷۱۸۱۹۲۰
۲۱۲۲۲۳۲۴۲۵۲۶۲۷
۲۸۲۹۳۰