PDA

View Full Version : تغییر اندازه فرم به نسبت اندازه مانیتور



sara_t
سه شنبه 22 فروردین 1391, 18:58 عصر
سلام دوستان
من فرم های برنامه ام رو مطابق با اندازه ثابت درنظر گرفته ام اما الان میخام اونو روی یه مانیتور کوچکتر ببینم آیا راهی وجود داره که
بدون دستکاری فرمها اونو به اندازه مانیتورهای مختلف دربیارم
ممنون میشم اگر با مثال توضیح بدید.

hakim22
سه شنبه 22 فروردین 1391, 19:16 عصر
روشی که من استفاده می کنم از Anchor یا گیره است. شما برای هرکنترلی که در فرم دارید اون رو با گیره به گوشه های فرم اصلی وصل می کنید.
تا تغییر فرم بسته به گیره هایی که تعیین کردید کنترلها جابجا میشوند.
خاصیت dock هم در بعضی موراد کاربرد داره.
برای تنظیم نسبت همه ی فرم از خاصیت AutoScaleMode استفاده کنید که با تغییر اندازه فونت یا DPI پنجره و همه ی کنترهای مربوط به آن به یک اندازه کوچک میشوند اما اصلا جالب نیست.

sara_t
سه شنبه 22 فروردین 1391, 21:23 عصر
ممنون
اما من دقیقا متوجه نشدم میشه با یه مثال توضیح بدید؟

mazaher5723
چهارشنبه 23 فروردین 1391, 01:07 صبح
سلام دوست عزیز اگه منظورتون خود فرم هست کا زمانی که براش دارین حال نصصب می شازید اونجا می تونید بگید تو کدوم حال اجرا شه.راه حل بدی نیست
اگه کنترولهاب درون برنامه ات هست قضیه فرق می کنه که بهتر از
tableLayoutPanel
استفاده کنید.تو کمپنونتهای خود سی شارپ هست
موفق و پیروز باشید

hakim22
چهارشنبه 23 فروردین 1391, 09:27 صبح
یک دکمه به یک فرم خالی اضافه کنید.
از قسمت properties به گزینه ی Anchor برید و می بینید که قسمت Top و Left اون علامت خورده.
این یعنی اینکه الان وقتی برنامه رو اجرا می کنید و ابعاد فرم رو تغییر میدید دکمه همیشه فاصله اش رو با لبه ی بالا و لبه ی چپ حفظ می کنه.
اگر Anchor راست و پایین هم تیک بزنید تغییر ابعاد فرم دکمه سعی می کنید فاصله های خودش را با لبه های پایین و راست حفظ کند. این یعنی دکمه بزرگ میشود.

sara_t
پنج شنبه 24 فروردین 1391, 14:54 عصر
بله اما اگه بخام کوچکتر بشه درست عمل نمیکنه
من برنامه هایی دیدم که هرچه فرم رو بزرگ یا کوچیک میکنی دکمه و ... که روی فرم هستن به همون اندازه کوچک و بزرگ میشن من دنبال این مورد میگردم.
ممنون میشم راهنمایی بفرمایید.

va2012
پنج شنبه 24 فروردین 1391, 15:05 عصر
به نظر من میتونی خاصیت Windows State فرم برنامت رو روی Maximize تنظیم کنی که در هر مانیتوری به حالت Maximize اجرا بشه و اگر خاصیت Dock و Anckor کنترل ها رو درست تنظیم کنی و کنترل ها رو داخل Panel قرار بدی احتمالا متناسب با اندازه مانیتور کنترل ها هم تنظیم میشه.

hakim22
پنج شنبه 24 فروردین 1391, 18:13 عصر
شما باید از خاصیت Scale فرم استفاده کنید. متغیری که درونش وارد می کنید ضریب بزرگنمایی (یا کوچک نمایی ) میشه.

form1.scale(0.5)

ولی این نوع فرمان از نظر دات نت obsolete حساب میشه و منقرض شده !!!
بحاش از یک نوع متغیری مثل این باید استفاده کنید . کد به زبان VB هست :


Dim scaleSize As New SizeF(0.5, 0.5)
Me.Scale(scaleSize)



خواهید دید که فرم شما همه ی کنترهاش مثل آلیس در سرزمین عجایب zoom out شده و کوچیک میشوند !