ايران ويج

نسخه‌ی کامل: تشخيص نمايش فرم 2 و 3
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان عزيز
من مي خواي تو يه برنامه اگر به عنوان مثال وقتي روي دكمه نمايش فرم كليك مي كنيم فرم 2 نمايش داده بشه و اگر فرم 2 باز بود فرم 3 رو نمايش بده خودم با IF خواستم بنويسم ولي خطا مي ده كسي مي تونه كمك كنه . ممنون مي شم ( خيلي برام مهمه)
در ضمن مي شه به فرم هم خاصيت ايندكس داد؟
با استفاده از تابع FindWindow که جزو توابع API هست می تونید دنبال فرم های باز بگردید

اینطوری که تیتر فرم دوم رو بش می دید اگه مقدار 0 رو بر نگردوند می فهمید که بازه :

کد:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Command1_Click()
Dim h As Long
h = FindWindow("", "Form2")
If h <> 0 Then Form3.Show Else Form2.Show
End Sub
سلام.
روش های مختلف میشه این مشکل رو حل کرد.
اینم یه روش دیگه:
میتونی یه آرایه بولین تو یه ماژول به صورت پابلیک تعریف کنی و یه متغیر آرایه ای از نوع فرم. در واقع یه آرایه از فرم داریم. تو فرم لود هر فرم متغیر مربوط به اون فرم رو از آرایه true و تو unload فالسش کنی. بعد تو کلیک کلید چک میکنی هر کدوم فالس باشه بازش کنه.
کد:
'ino bezar too 1 module
Public blnOpenForm(100) As Boolean
Public i As Integer

'ino bezar too 1 form be esme frmSample
Private Sub Form_Load()
    blnOpenForm(i) = True
    Me.Caption = "Form" & i
    Me.Tag = i
End Sub

Private Sub Form_Unload(Cancel As Integer)
    blnOpenForm(Me.Tag) = False
End Sub


'inam too forme asli
Private frmForms(100) As New frmSample

Private Sub Command1_Click()
    For i = 1 To 100
        If Not blnOpenForm(i) Then
            frmForms(i).Show
            Exit For
        End If
    Next i
End Sub
سلام

کد:
Dim ShowF2 As Boolean
Private Sub Form_Load()
ShowF2 = True
End Sub

Private Sub Command1_Click()
If ShowF2 = True Then
Form2.Show
Form3.Hide
ShowF2 = False
Else:
Form3.Show
Form2.Hide
ShowF2 = True
End If
End Sub

این جوری هم می شه نه؟
سلام.
مگه فقط 3 تا فرم داری؟ روشی که بهت گفتم برای n تا فرم جواب میده و محدودیت نداری.
ولی اگه فقط 3 تا فرم داری میتونی از همین روشی که گفتی استفاده کنی.