ให้ปิด form ที่เปิดอยู่ ก่อนที่จะเปิดฟอร์มใหม่ [VB6.0]
แก้ไขครั้งสุดท้ายโดย my2alee เมื่อ 2019-10-17 11:02โปรเจ็คผมมี เป็นแบบ MDIForm
ประกอบด้วย form ลูกหลายฟอร์มด้วยกัน
>> ถ้า สมมุติ ผมคลิกเปิดฟอร์มใดฟอร์มหนึ่งขึ้นมา และไปคลิกเปิดฟอร์มอื่นหรือคลิกเปิดฟอร์มใดๆ โดยที่ยังไม่ปิดฟอร์มที่เปิดอยู่ก่อน-------- อาจจะให้มีข้อความแจ้งเตือนแล้วปิดฟอร์มที่เปิดอยู่อัตโนมัติ ก่อนแสดงฟอร์มที่ต้องการเปิดใหม่ขึ้นมาครับ
ประมาณว่า ให้ปิดฟอร์มที่เปิดอยู่ก่อนจึงจะเปิดฟอร์มอื่นๆได้
>> ขอแนวทางหน่อยครับ อ.
ไม่รู้ว่าแบบนี้หรือเปล่า
สร้าง Form ขึ้นมา 2 Form
มี Form1 และ Form2
Form1 สร้าง Button ขึ้นมา 1 ตัว เพื่อเปิด Form2 (เมื่อกดเปิด Form2 ให้ Form1 ปิดตัวไป)
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("ปิด Form1 แล้วเปิด Form2")
Me.Hide()
Form2.Show()
End Sub
End Class
Form2 สร้าง Button ขึ้นมา 1 ตัว เพื่อเปิด Form1 (เมื่อกดเปิด Form1 ให้ Form2 ปิดตัวไป)
Public Class Form2
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("ปิด Form2 แล้วเปิด Form1")
Me.Close()
Form1.Show()
End Sub
End Class
*** Form หลัก ไม่สามารถใช้คำสั่ง Me.Close() ได้ ใช้ได้แค่ Me.Hide() คือซ่อนเท่านั้น codingza ตอบกลับเมื่อ 2019-10-17 10:01
ไม่รู้ว่าแบบนี้หรือเปล่า
สร้าง Form ขึ้นมา 2 Form
มี Form1 แล ...
ลืมบอกไปครับ VB6.0 เป็นโค้ดฟังค์ชั่นในการเช็คว่า หากไม่ใช่ฟอร์ม MDI แสดงว่ามีการโหลดฟอร์มลูกขึ้นมา นำไปประยุกต์เพิ่มเองงล่ะกันครับผม ...
Option Explicit
Private Sub mnuForm1_Click()
If CheckForm Then
MsgBox "Please Close Child Form"
Else
Form1.Show
End If
End Sub
Private Sub mnuForm2_Click()
If CheckForm Then
MsgBox "Please Close Child Form"
Else
Form2.Show
End If
End Sub
Public Function CheckForm() As Boolean
Dim Form As Form
For Each Form In Forms
'/ Not MDI Form
If Form.Name <> "MDIForm1" Then
CheckForm = True
'// หากต้องการปิดฟอร์มอื่นๆที่ไม่ใช่ MDI Form
'Unload Form
Else
CheckForm = False
End If
Next Form
Set Form = Nothing
End Function
ขอบคุณท่าน codingza และ อ.thongkorn ด้วยครับ
ได้แล้วครับ อ. งมอยู่ตั้งนาน
หน้า:
[1]