View Full Version : سوال: تنظیم اشیای فرم بطوری که در تمامی صفحه نمایش ها جایشان تغییر نکند !؟
f_talebi
پنج شنبه 22 فروردین 1392, 22:23 عصر
سلام
بنده یک برنامه با وی بی دارم ک چند کنترل تو فرم گذاشتم ؛ اون لپ تابی ک باهاش برنامه مینویسیم صفحه نمایشش کوچیکه و وقتی برناممو تو صفحه نمایش های عریض تر اجرا میکنم ؛ جای اشیا عوض میشه.
چطوری میتونم پس زمینه ی فرمم که یه عکس هست و همچنین اشیا تو فرمم رو طوری تنظیم کنم که تو همه ی صفحه نمایش ها جاشون ثابت باشه؟
saber67
جمعه 23 فروردین 1392, 11:24 صبح
اندازه اشیا و محلشون تو همه صفحه نمایش ها ثابته (در واقع اندازه و مختصات اجزای فرم نسبت به هم ثابته یعنی تو نمایشگر با کیفیت بالا همه کوچیک میشن!! و تو نمایشگر با کیفیت پایین همه بزرگ میشن!!) مگه اینکه فرم رو تغییر اندازه بدیم
می تونی خاصیت BorderStyle فرم برنامه رو روی Fixed Single تنظیم کنی این جوری دیگه اندازه فرم برنامه قابل تغییر نیست و همه جا یه اندازه داره
یا اگه این طوری مشکلت حل نشد یا نخواستی قابلیت تغییر اندازه فرم رو غیر فعال کنی می تونی از رخداد Form_Resize استفاده کنی
این تابع وقتی اجرا میشه که برنامه ما تغییر اندازه داده بشه، پس می تونی کدهایی اینجا بنویسی که مختصات و اندازه کنترل های استفاده شده توی فرم برنامت رو با اندازه جدید فرم هماهنگ کنه
اینم یه نمونه ساده
یه دکمه بزار روی فرم و کد زیر رو به برنامه اضافه کن:
Private Sub Form_Resize()
Command1.Left = Me.ScaleWidth - Command1.Width - 240
Command1.Top = Me.ScaleHeight - Command1.Height - 240
End Sub
با این کار جای دکمه نسبت به حاشیه راست و پایین برنامه ثابت می مونه
f_talebi
شنبه 24 فروردین 1392, 20:17 عصر
وقتی بردم تو صفحه نمایش عریض اینجوری شد :
http://upload7.ir/images/78399258957645853436.jpg
کد رو فقط برا اون ماهی اولی نوشتم ک اومده پایین. چطوری بیارم اون وسط صفحه
برای این عکس پس زمینه چیکار کنم؟
saber67
یک شنبه 25 فروردین 1392, 13:30 عصر
کد زیر یک picturebox رو میاره وسط صفحه
و همین طور عکسی رو که به عنوان پس زمینه یه برنامه دادین (اگه از یه پیکچر باکس دیگه استفاده کردین باید Me.picture رو به Picturebox.picture تغییر بدین) به اندازه فرم تغییر اندازه میده
البته باید خاصیت AutoRedraw فرم رو True قرار بدی
Private Sub Form_Resize()
Picture1.Top = (Me.ScaleHeight - Picture1.Height) / 2
Picture1.Left = (Me.ScaleWidth - Picture1.Width) / 2
Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End Sub
f_talebi
یک شنبه 01 اردیبهشت 1392, 23:13 عصر
عذر میخوام که دیر به دیر بررسی میکنم. من برای پس زمینم از pictureBox استفاده نکردم. همون خاصیت picture فرم رو بکار بردم؛ در این صورت باید چه کار کنم
setroyd
یک شنبه 01 اردیبهشت 1392, 23:39 عصر
شما یه کاری کن برنامت رو بزار برات درست کنم این کدها فرضیه و شاید اون چیزی که میخوای نشه !
واسه فرم هم میتونی از این استفاده کنی فرقی نداره چه picturebox چه form
form1.PaintPicture form1.Picture, 0, 0, form1.Width, form1.Height
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.