PDA

View Full Version : تعیین سایز فرم



VisualStudio
پنج شنبه 20 اردیبهشت 1386, 21:10 عصر
من چطوری می تونم فرمم اندازش اندازه صفحه مانیتور بشه یعنی بدون اینکه ماکسیمازش کنیم

saeed_rezaei
پنج شنبه 20 اردیبهشت 1386, 22:21 عصر
دوست من بهتر بود که مشخص می کردی ورژنت 2003 هست یا 2005. من چون ندونستم، 2005 رو واست می زنم. امیدوارم این همون چیزی باشه که دنبالش می گردی

Me.Width = My.Computer.Screen.Bounds.Width
Me.Height = My.Computer.Screen.Bounds.Height

VisualStudio
جمعه 21 اردیبهشت 1386, 14:10 عصر
بله من با 2005 کار می کنم
یک سوال دیگه دوستان من می خواستم بدونم یه چطوری می تونم یک فرم را که به صورت فرم دختر دارم را در گوشه سمت راست صفحه مانیتو نمایش داده بشه مثل فرم های راه حل و خواص که در خود ویژوال استادیو هست یا فرم های پالت در فتوشاپ

saeed_rezaei
جمعه 21 اردیبهشت 1386, 17:34 عصر
این دوتا که گفتی با هم دیگه کمی فرق دارن.
اگه دقت داشته باشی، می بینی که پالت های فتوشاپ حالت شناور دارن در حالی که پالتهای ویژوال استودیو هم شناور هستند و هم dockable. یعنی به فضای اطرافشون می چسبند.
مدل فتوشاپ کار ساده ای هستش. زیاد دردسر نداره.
کافیه اون فرمی رو که میخوای، اندازهاش رو مشخص کنی، بعد هنگام اجرا برنامه اون رو تو حافظه بار کنی.
اما مدل ویژال استودیو به همین سادگی نیست. به دو روش می شه این کار رو فراهم کرد.
1- استفاده از فرم جدید.
2- استفاده از پنل های ساده، که نتیجش یه چیزی شبیه به برنامه Outlook میشه.
روش اول کار سختیه. به همین سادگی انجام نمی شه. شما باید از یه ابزار کمکی استفاده کنید. که الان نمی تونم بگم اسمش چیه و تو کدوم سایت پیداش کنی.(چون جلو کامپیوتر خودم نیستم).
روش دوم خیلی خیلی سادس. کافیه از ابزارهای Panel و spliter در فرم اصلی استفاده کنید.

من همین سه تارو بلدم. شما کدوم یکی رو مدنظرتونه؟

VisualStudio
شنبه 22 اردیبهشت 1386, 14:30 عصر
من مثل برنامه فتوشاپ را می خوستم اگر امکان داره بیشتر تو ضیح بدید با تشکر

saeed_rezaei
یک شنبه 23 اردیبهشت 1386, 21:51 عصر
سلام
مثل فتوشاپ خیلی کارت ساده تره. در این روش شما فرم اصلی تون رو که به صورت mdi تعریف می کنید. سایر فرمها رو هم که به صورت فرزند. خصوصیات border style فرمها رو هم به fixedsingle تغییر می دید. هنگام اجرا شدن برنامتون، اونها رو میچینید توی صفحه و لود میکنید. این روش خیلی سادس فکر نمی کنم نیاز به توضیح داشته باشه!
آیا نکته مبهمی ذهنتون رو مشغول کرده؟

مصطفی ساتکی
سه شنبه 25 اردیبهشت 1386, 12:09 عصر
آقای saeed_rezaei (http://barnamenevis.org/forum/member.php?u=30229) اگر مایل باشید می تونید به خواص فرم های پالت فتوشاپ نگاه کنید این فرم ها mdi هستند و formstyle آنها bstoolwindow
زمانیکه ما بخواهیم جز فرم اصلی فرم دیگری نیز دارای focus همزمان باشد بایستی message WM_NCACTIVATE زیر را به handle فرم مربوطه بفرستیم با پارامترهای یک و صفر
و درصورت تمایل به ازبین بردن focus بایستی پارمتر صفر و صفر را با همان پیغام به فرم بفرستیم
البته بایستی کد دیگری را به wndproc مربوط به فرم پالت اضافه کنیم که در صورت دریافت message 162,513,528 اینکار را نجام دهد یعنی زمان دریافت فوکس برای فرم

VisualStudio
چهارشنبه 26 اردیبهشت 1386, 18:37 عصر
من تمام مطالبی که شما گفتید را می دونم فقط موقع لود شدن چکار کنم که مثل فتوشاپ در گوشه سمت راست بالا فرو با در نظر گرفتن ToolBar ها لود بشه ممنون

saeed_rezaei
جمعه 28 اردیبهشت 1386, 00:50 صبح
سلام
توی رویداد load هر کدوم از فرمهات، مقادیرش رو ست کن.
#
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Left = 350
Me.Top = 250
End Sub
#

VisualStudio
شنبه 29 اردیبهشت 1386, 11:21 صبح
با عرض تشکر از شما من مجددا یک سوالی از شما داشتم اون هم اینکه چطوری می تونم
به گوشه فرمم( سمت راست بالا زیز toolbarها) بچسبه چونکه اندازه مانیتور ها که یکسان نیست که


Me.Width = My.Computer.Screen.Bounds.Width
Me.Height = My.Computer.Screen.Bounds.Height

در مورد این کد هم این فرم را تا گوشه پایین می بره من می خوام کهتا بالا taskbar باشه
--------------------------------------
پیشاپیش تشکر می کنم

maroot
شنبه 29 اردیبهشت 1386, 23:28 عصر
خوب باید عدد نهایی رو منهای 20 (ارتفاع TaskBar) کنی

saeed_rezaei
یک شنبه 30 اردیبهشت 1386, 20:56 عصر
شما قابلیتهای dock و ancher رو تا حالا مورد استفاده قرار دادید؟و البته کنترل TableLayoutPanel رو در 2005. موارد بالا قابلیتهای سازگاری برنامه های شما رو با تغییر سایز فرمها در حد بسیار بالایی تقویت می کنند.

VisualStudio
دوشنبه 31 اردیبهشت 1386, 11:57 صبح
dock و ancher
این خاصیت ها را که فرم نداره عزیز

saeed_rezaei
دوشنبه 31 اردیبهشت 1386, 14:47 عصر
بله موافقم. فرم قابلیتهای بالا رو نداره. اما قابلیت جدید 2005 که باور نکردنیه. شما می تونید تمام کنترلهایی رو که روی فرمت تعریف کردی واسشون هم کد نوشتی خیلی ساده توی فرم دیگت انتقال بدی.
می دونی این چقدر جالبه. بارها و بارها سعیم این بود که این کارها رو توی 2003 انجام بدم اما هیچگاه موفق نبودم تا اینکه توی 2005 جواب داد.
البته این رو هم اعتراف کنم که من متن پست 10 رو خوب متوجه نشدم. اگه یه کمی بیشتر واسم توضیح بدی می تونیم با استفاده از همین قابلیت جدید 2005، به برنامه ای بنویسیم که خودت واسه خودت کیف کنی.

maroot
سه شنبه 01 خرداد 1386, 00:46 صبح
میشه در مورد چگونگی این روش توضیح بدید؟

VisualStudio
چهارشنبه 16 خرداد 1386, 20:09 عصر
بله موافقم. فرم قابلیتهای بالا رو نداره. اما قابلیت جدید 2005 که باور نکردنیه. شما می تونید تمام کنترلهایی رو که روی فرمت تعریف کردی واسشون هم کد نوشتی خیلی ساده توی فرم دیگت انتقال بدی.
می دونی این چقدر جالبه. بارها و بارها سعیم این بود که این کارها رو توی 2003 انجام بدم اما هیچگاه موفق نبودم تا اینکه توی 2005 جواب داد.
البته این رو هم اعتراف کنم که من متن پست 10 رو خوب متوجه نشدم. اگه یه کمی بیشتر واسم توضیح بدی می تونیم با استفاده از همین قابلیت جدید 2005، به برنامه ای بنویسیم که خودت واسه خودت کیف کنی.


میشه این رو توضیح بدید که چگونه هست من میخوام یک فرم داشته باشم که در یک نقطه ای از فرم دیگر باشه با تشکر (خیلی مختصی گفتم)

ghafoori
چهارشنبه 16 خرداد 1386, 20:56 عصر
اگر منظور شما این است که یک فرم روی فرم دیگه باشه و موقعیت سروع ان مثل نقطه 100و100 فرم اول باشه اگه این منظور شماست ابتدا باید موقعیت این نقطه 100و 100 را نسبت به دسکتاپ بدست بیاورید که با متد PointToScreen این کار را انجام می دهید و این نقطه بدست امده را برابر موقعیت فرم2 قرار می دهید

eyes_shut_number1
پنج شنبه 17 خرداد 1386, 11:20 صبح
بعد از این که سایز رو درست کردی با این کد مختصات فرم دوم که میخواد روی فرم اول باز شرو تنظیم کنی!البیه اگه سوال همین بود!خیلی گیج کننده و سلوغ تاپیک دادین
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = Form1.Location + new Point(x as integer , y as integer)
End Sub

VisualStudio
شنبه 19 خرداد 1386, 17:48 عصر
PointToScreen
دوست عزیز پس قضیه PointToScreen چی هست

ghafoori
شنبه 19 خرداد 1386, 21:04 عصر
این متد کارش این است که یک نقطه نسبت به فرم برنامه را گرفته مختصات این نقطه را نسبت به دسکتاب به شما میدهد کارش هم مثل کد اقای eyes_shut_number1 است یعنی مختصات را جمع میکند

Hadizadeh
یک شنبه 07 مرداد 1386, 08:37 صبح
از پروپرتی های Screen.Width و Screen.Height استفاده کن