PDA

View Full Version : کنترل های روی یک Picturebox که تغییر اندازه میده



sanaz_k
چهارشنبه 21 فروردین 1387, 22:58 عصر
سلام
من یک Picturebox دارم که چند تا کنترل روش قرار دادم حالا این Picturebox در حالات مختلف تغییر مکان یا تغیر اندازه میده چه طوری میشه این تغییرات را روی اون کنترل ها هم اعمال کرد؟
آیا باید از مفهوم ارث بری استفاده کنم؟

gdevnb
چهارشنبه 21 فروردین 1387, 23:06 عصر
اگه میشه به جای picturebox از کانتینرها استفاده کنید تا مشکل جابجایی نداشته باشید.
برای اندازه هم براش کد بنویسید و نسبت تغییرات رو اعمال کنید.

tthenry14plus
پنج شنبه 22 فروردین 1387, 02:35 صبح
میتونی از نسبت اندازه استفاده کنی
مثلا اول کار نسبت طول و عرض pictureBox به button را بدست بیاری و در یک ثابت ذخیره کنی
سپس در رویداد SizeChanged پیکچرباکست دستورات لازم را بنویسی که
مثلا:


int W=PictureBox.Width/(int)نسبت طولیPictureBox به button
int H=PictureBox.Height/(int)نسبت عرضیPictureBox به button
button1.Size = new Size(W, H);

sinpin
پنج شنبه 22 فروردین 1387, 03:57 صبح
سلام
من یک Picturebox دارم که چند تا کنترل روش قرار دادم حالا این Picturebox در حالات مختلف تغییر مکان یا تغیر اندازه میده چه طوری میشه این تغییرات را روی اون کنترل ها هم اعمال کرد؟
آیا باید از مفهوم ارث بری استفاده کنم؟

با نسبت دادن خواص dock و anchor کنترلها میشه مکان و سایز اونها رو نسبت به تغییرات یک containter منعطف کرد. اما پیکچرباکس بصورت عادی یک containter محسوب نمیشه مگر آنکه :

1- والد اون کنترلها رو از فرم یا ... به همون پیکچرباکس تغییر بدید (اینکار رو میتونید در فایل desginer مربوط به فرم انجام بدید تا تغییرات رو در حالت design بتونید مشاهده کنید) یعنی کدی مانند زیر را :

this.Controls.Add(this.button1);تبدیل کنید به :

this.pictureBox1.Controls.Add(this.button1); سپس dock یا anchor کنترلها رو نسبت به پیکچرباکس تنظیم کنید.

2- هم پیکچرباکس و هم سایر کنترلهای مرتبط رو روی یک پنل قرار بدید و همه رو نسبت به اون پنل anchor یا dock کنید.

sanaz_k
پنج شنبه 22 فروردین 1387, 08:16 صبح
با نسبت دادن خواص dock و anchor کنترلها میشه مکان و سایز اونها رو نسبت به تغییرات یک containter منعطف کرد. اما پیکچرباکس بصورت عادی یک containter محسوب نمیشه مگر آنکه :

1- والد اون کنترلها رو از فرم یا ... به همون پیکچرباکس تغییر بدید (اینکار رو میتونید در فایل desginer مربوط به فرم انجام بدید تا تغییرات رو در حالت design بتونید مشاهده کنید) یعنی کدی مانند زیر را :

this.Controls.Add(this.button1);تبدیل کنید به :

this.pictureBox1.Controls.Add(this.button1); سپس dock یا anchor کنترلها رو نسبت به پیکچرباکس تنظیم کنید.

2- هم پیکچرباکس و هم سایر کنترلهای مرتبط رو روی یک پنل قرار بدید و همه رو نسبت به اون پنل anchor یا dock کنید.
مرسی از راهنماییتون!
میشه یکم در مورد دوم برام توضیح بدید؟(در مورد anchor یا dockنسبت به پنل)
اگه در این مورد قبلا صحبت شده بگید چون من با جستجو چیزی پیدا نکردم!

gdevnb
پنج شنبه 22 فروردین 1387, 09:51 صبح
مرسی از راهنماییتون!
میشه یکم در مورد دوم برام توضیح بدید؟(در مورد anchor یا dockنسبت به پنل)
اگه در این مورد قبلا صحبت شده بگید چون من با جستجو چیزی پیدا نکردم!
تو دیزاینر می تونی مقادیر anchor یا dock رو تغییر بدید.
مثلاً anchor رو بزار سمت راست و بالا. و فکر کنم با توضیحاتی که جناب sinpin دادند مشکلتون حل میشه.

tthenry14plus
پنج شنبه 22 فروردین 1387, 14:17 عصر
sanaz_k محترم اگر عکس ها رو نگاه کنید کاملا متوجه میشید.