PDA

View Full Version : انتخاب محل فرم



look20
یک شنبه 16 خرداد 1389, 19:34 عصر
با سلام
میدونم میشه تعیین کرد که فرم کجا باز بشه از طریق left و top
من دو تا فرم دارم یه دکمه بنام Command1روی فرم 2 که وقتی کلیک میکنم فرم 1 باز میشه

Private Sub Command1_Click()
form1.Left = Me.Left + Command1.Left + 50
form1.Top = Me.Top + Command1.Top + 700
form1.Show
end sub

برای فرم 1 افکت گذاشتم منتها مشکل اینجاست وقتی افکت اجرا میشه فرم1 از یه جای دیگه باز میشه بعد از تمام شدن افکت فرم میره سر جایی که تعیین کردم باز بشه! چرا؟!

البته من نیاز دارم چند جا فرم رو فراخونی کنم و فرم 2 باید از طریق دکمه فراخونی بشه یعنی اگه من علاوه بر Command1 چندتا Command دیگه دارم و مثل همین کد بالا باید اجراش کنم


Private Sub Command2_Click()
form1.Left = Me.Left + Command2.Left + 50
form1.Top = Me.Top + Command2.Top + 700
form1.Show
Private Sub Command3_Click()
form1.Left = Me.Left + Command3.Left + 50
form1.Top = Me.Top + Command3.Top + 700
form1.Show
end subفایل ضمیمه رو ببینید متوجه میشید

daniyal_1363
یک شنبه 16 خرداد 1389, 21:09 عصر
:لبخند:

:لبخند:

:لبخند:

بیا این درست شدش ماله تو :بامزه: دانلود کن

فقط کافیه آدرس دهی (تعیین Top و Left )فرم 1 رو قبل از انجام افکت در فرم لود همون صفحه (یعنی فرم 1) انجام بدی

look20
یک شنبه 16 خرداد 1389, 23:32 عصر
ممنون دوست من ولی منظورم این نبود من میخام دقیقا هر جایی که تعریف میشه باز بشه الان فقط توی دکمه اول اینطوره ولی وقتی روی دکمه 2 و 3 کلیک میکنی اول فرم یه جا باز میشه و بعد از انجام افکت میره اونجایی که باید بشه!

فکر کنم باید توی فرم 1 تعریف بشه اگه روی فلان دکمه توی فرم 2 کلیک شده بود اونوقت فرم 1 فلان جا نمایش داده بشه

مشکل منم اینجاست که چطور چنین چیزی تغریف کنم

یعنی اگه روی دکمه اول کلیک کردم
این کد در قسمت لود فرم1 اجرا بشه

Private Sub Form_Load()

Form1.Left = Form2.Left + Form2.Command1.Left + 50
Form1.Top = Form2.Top + Form2.Command1.Top + 700
AnimateWindow Me.hwnd, 2000, AW_BLEND Or AW_ACTIVATE
End Sub

اگه روی دکمه دوم کلیک کردم
این کد در قسمت لود فرم1 اجرا بشه

Private Sub Form_Load()

Form1.Left = Form2.Left + Form2.Command2.Left + 50
Form1.Top = Form2.Top + Form2.Command2.Top + 700
AnimateWindow Me.hwnd, 2000, AW_BLEND Or AW_ACTIVATE
End Sub

اگه روی دکمه سوم کلیک کردم
این کد در قسمت لود فرم1 اجرا بشه

Private Sub Form_Load()

Form1.Left = Form2.Left + Form2.Command3.Left + 50
Form1.Top = Form2.Top + Form2.Command3.Top + 700
AnimateWindow Me.hwnd, 2000, AW_BLEND Or AW_ACTIVATE
End Sub

look20
یک شنبه 16 خرداد 1389, 23:41 عصر
مشکلو خودم حل کردم کافیه این کد رو توی لود فرم 1 استفاده کنم اونوقت جواب میده

Private Sub Form_Load()
If Form2.Command1.Value Then
Form1.Left = Form2.Left + Form2.Command1.Left + 50
Form1.Top = Form2.Top + Form2.Command1.Top + 700
AnimateWindow Me.hwnd, 2000, AW_BLEND Or AW_ACTIVATE
End If
If Form2.Command2.Value Then
Form1.Left = Form2.Left + Form2.Command2.Left + 50
Form1.Top = Form2.Top + Form2.Command2.Top + 700
AnimateWindow Me.hwnd, 2000, AW_BLEND Or AW_ACTIVATE
End If
If Form2.Command3.Value Then
Form1.Left = Form2.Left + Form2.Command3.Left + 50
Form1.Top = Form2.Top + Form2.Command3.Top + 700
AnimateWindow Me.hwnd, 2000, AW_BLEND Or AW_ACTIVATE
End If
End Subیعنی وقتی روی هر دکمه کلیک میکنم دقیقا اونجایی که میخام افکتش اجرا میشه و ثابت میمونه
از دوست گلم daniyal_1363 (http://www.barnamenevis.org/forum/member.php?u=26986) هم ممنون