View Full Version : تعیین location یه فرم در فرم دیگر
yekta64
سه شنبه 27 مهر 1389, 23:10 عصر
سلام دوستان
من سه فرم 1و2و3 دارم
که فرم 1 رو پرنت قرار دارم mdiparent فرم 2 رو برابر فرم 1 قرار دادم و فرم 1 رو show می کنم
حالا می خوام فرم 3 در location خاصی از فرم 2 showdialog بشه چکار باید کنم؟؟؟؟
من از این کد در رویداد load فرم 3 استفاده کردم
me.location=new ponit (144,120)
منتها فرم به صورت دقیق در این location نمایش داده نمیشه علت چی هستش و باید چیکار کنم؟؟؟
مرسی
ali_najari
سه شنبه 27 مهر 1389, 23:14 عصر
دوست عزیز من اصلا منظور شما رو متوجه نشدم
میشه یکم واضح تر بگید
تا اینجا که فرم 2 رو داخل فرم 1 باز میکنید درست
آیا میخواید فرم 3 رو داخل فرم 2 باز کنید؟
اگر چنین قصدی دارید یه Panel اضافه کنید و فرم 3 رو داخل Panel قرار بدید
اگر غیر این هست که پس توضیح بیشتری بدید تا اگه تونستم کمکتون کنم
yekta64
سه شنبه 27 مهر 1389, 23:21 عصر
دوست عزیز من اصلا منظور شما رو متوجه نشدم
میشه یکم واضح تر بگید
تا اینجا که فرم 2 رو داخل فرم 1 باز میکنید درست
آیا میخواید فرم 3 رو داخل فرم 2 باز کنید؟
اگر چنین قصدی دارید یه Panel اضافه کنید و فرم 3 رو داخل Panel قرار بدید
اگر غیر این هست که پس توضیح بیشتری بدید تا اگه تونستم کمکتون کنم
ببینید فرم 2 در فرم 1 رو به این صورت باز می کنم
form2.mdiparent=form1
form2.show()
با این کار فرم 2 در فرم 1 باز میشه
حالا می خوام با فشردن یه دکمه در فرم 2 , فرم 3 در location خاصی از فرم 2 باز بشه
امیدوارم منظورم رو رسونده باشم
ali_najari
سه شنبه 27 مهر 1389, 23:28 عصر
من منظورتون از این عبارت رو متوجه نمیشه "فرم 3 در location خاصی از فرم 2 باز بشه"
دقیقا میخواید چیکار کنید؟ میخواید فرم 3 داخل فرم 2 باز بشه یا اینکه فقط در یک Location خاص داخل فرم 2؟
yekta64
سه شنبه 27 مهر 1389, 23:35 عصر
من منظورتون از این عبارت رو متوجه نمیشه "فرم 3 در location خاصی از فرم 2 باز بشه"
دقیقا میخواید چیکار کنید؟ میخواید فرم 3 داخل فرم 2 باز بشه یا اینکه فقط در یک Location خاص داخل فرم 2؟
ببیند من می خوام فرم 3 رو در فرم 2 showdialog کنم
با این کد:
form2.showdialog()
زمانی که یه فرم رو show می کنم می تونیم بگیم در وسط صفحه سمت چپ راست غیره نشون داده بشه
حالا بر فرض من می خوام در گوشه ی سمت چپ فرم 2 که location رو به دست اوردم فرم 3 show بشه
اگه متوجه منظورم نشدید بگید بیشتر توضیح بدم
مرسی
ali_najari
چهارشنبه 28 مهر 1389, 00:14 صبح
روش کار میکنم و تا فردا جواب میدم اگر تونستم یه نمونه میزارم و اگر نتونستم میگم که نتونستم
farhadt
چهارشنبه 28 مهر 1389, 00:16 صبح
باید دو تا متغیر Public توی فرم 3 تعریف کرده باشی:
فرم 3:
Public Class Form3
Public Lft, Tp As Integer
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Left = Lft
Me.Top = Tp
End Sub
End Class
فرم 2:
X,Y رو با اعدای که میخوای جایگزین کن.
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim frm As New Form3
frm.Lft = Me.Left + X
frm.Tp = Me.Top + Y
frm.Show()
End Sub
End Class
ali_najari
چهارشنبه 28 مهر 1389, 00:32 صبح
دوست عزیز یه روش ساده تر از این هم هست
مثال زیر رو براتون گذاشتم امیدوارم منظورتون رو درست فهمیده باشم
yekta64
چهارشنبه 28 مهر 1389, 09:28 صبح
دوست عزیز یه روش ساده تر از این هم هست
مثال زیر رو براتون گذاشتم امیدوارم منظورتون رو درست فهمیده باشم
بی نهایت ممنون دوست عزیز
اشباه من این بود که تعیین location فرم 3 رو در رویداد load خود فرم 3 می نوشتم
بازم ممنون از راهنماییتون
hero4000
چهارشنبه 28 مهر 1389, 09:37 صبح
دوست عزيز فکر نکنم مسئله پيچيده اي باشه
شما کافيه مثلا اگه ميخواي 10 واحد از بالا و چپ فرم دو فاصله داشته باشه کد زير رو بنويسي
Me.Left=Form2.Left+10
Me.Top=Form2.Top+10
فکر ميکنم همين کافي باشه
يک تست بکن اگه مشکلت حل نشد بگو و يکم توضيحاتت رو بيشتر کن
hero4000
چهارشنبه 28 مهر 1389, 09:39 صبح
البته بگم کد بالا رو بايد توي رويداد فرم لود فرم 3 بنويسي
yekta64
چهارشنبه 28 مهر 1389, 10:20 صبح
البته بگم کد بالا رو بايد توي رويداد فرم لود فرم 3 بنويسي
مرسی دوست عزیز با راهنمایی دوستمون مشکل حل شد بازم مرسی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.