ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 276|ตอบกลับ: 4

ให้ปิด form ที่เปิดอยู่ ก่อนที่จะเปิดฟอร์มใหม่ [VB6.0]

[คัดลอกลิงก์]

5

กระทู้

18

โพสต์

117

เครดิต

Member

Rank: 2

เครดิต
117

แก้ไขครั้งสุดท้ายโดย my2alee เมื่อ 2019-10-17 11:02

[VB6.0]
โปรเจ็คผมมี เป็นแบบ MDIForm
ประกอบด้วย form ลูกหลายฟอร์มด้วยกัน
>> ถ้า สมมุติ ผมคลิกเปิดฟอร์มใดฟอร์มหนึ่งขึ้นมา และไปคลิกเปิดฟอร์มอื่นหรือคลิกเปิดฟอร์มใดๆ โดยที่ยังไม่ปิดฟอร์มที่เปิดอยู่ก่อน-------- อาจจะให้มีข้อความแจ้งเตือนแล้วปิดฟอร์มที่เปิดอยู่อัตโนมัติ ก่อนแสดงฟอร์มที่ต้องการเปิดใหม่ขึ้นมาครับ
ประมาณว่า ให้ปิดฟอร์มที่เปิดอยู่ก่อนจึงจะเปิดฟอร์มอื่นๆได้
>> ขอแนวทางหน่อยครับ อ.

0

กระทู้

5

โพสต์

99

เครดิต

Member

Rank: 2

เครดิต
99
โพสต์ 2019-10-17 10:01:01 | ดูโพสต์ทั้งหมด

ไม่รู้ว่าแบบนี้หรือเปล่า
สร้าง Form ขึ้นมา 2 Form
มี Form1 และ Form2
Form1 สร้าง Button ขึ้นมา 1 ตัว เพื่อเปิด Form2 (เมื่อกดเปิด Form2 ให้ Form1 ปิดตัวไป)

  1. Public Class Form1
  2.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  3.         MsgBox("ปิด Form1 แล้วเปิด Form2")
  4.         Me.Hide()
  5.         Form2.Show()
  6.     End Sub
  7. End Class
คัดลอกไปที่คลิปบอร์ด


Form2 สร้าง Button ขึ้นมา 1 ตัว เพื่อเปิด Form1 (เมื่อกดเปิด Form1 ให้ Form2 ปิดตัวไป)

  1. Public Class Form2
  2.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  3.         MsgBox("ปิด Form2 แล้วเปิด Form1")
  4.         Me.Close()
  5.         Form1.Show()
  6.     End Sub
  7. End Class
คัดลอกไปที่คลิปบอร์ด


*** Form หลัก ไม่สามารถใช้คำสั่ง Me.Close() ได้ ใช้ได้แค่ Me.Hide() คือซ่อนเท่านั้น

5

กระทู้

18

โพสต์

117

เครดิต

Member

Rank: 2

เครดิต
117
 เจ้าของ| โพสต์ 2019-10-17 11:01:15 | ดูโพสต์ทั้งหมด

codingza ตอบกลับเมื่อ 2019-10-17 10:01
ไม่รู้ว่าแบบนี้หรือเปล่า
สร้าง Form ขึ้นมา 2 Form
มี Form1 แล ...

ลืมบอกไปครับ VB6.0

213

กระทู้

301

โพสต์

2407

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
2407
โพสต์ 2019-10-17 12:11:12 | ดูโพสต์ทั้งหมด

เป็นโค้ดฟังค์ชั่นในการเช็คว่า หากไม่ใช่ฟอร์ม MDI แสดงว่ามีการโหลดฟอร์มลูกขึ้นมา นำไปประยุกต์เพิ่มเองงล่ะกันครับผม ...
  1. Option Explicit

  2. Private Sub mnuForm1_Click()
  3.     If CheckForm Then
  4.         MsgBox "Please Close Child Form"
  5.     Else
  6.         Form1.Show
  7.     End If
  8. End Sub

  9. Private Sub mnuForm2_Click()
  10.     If CheckForm Then
  11.         MsgBox "Please Close Child Form"
  12.     Else
  13.         Form2.Show
  14.     End If
  15. End Sub

  16. Public Function CheckForm() As Boolean
  17.     Dim Form As Form
  18.     For Each Form In Forms
  19.         '/ Not MDI Form
  20.         If Form.Name <> "MDIForm1" Then
  21.             CheckForm = True
  22.             '// หากต้องการปิดฟอร์มอื่นๆที่ไม่ใช่ MDI Form
  23.             'Unload Form
  24.         Else
  25.             CheckForm = False
  26.         End If
  27.    Next Form
  28.    Set Form = Nothing
  29. End Function
คัดลอกไปที่คลิปบอร์ด


สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

5

กระทู้

18

โพสต์

117

เครดิต

Member

Rank: 2

เครดิต
117
 เจ้าของ| โพสต์ 2019-10-17 13:39:44 | ดูโพสต์ทั้งหมด

ขอบคุณท่าน codingza และ อ.thongkorn ด้วยครับ
ได้แล้วครับ อ. งมอยู่ตั้งนาน
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2020-1-21 12:27 , Processed in 0.354064 second(s), 4 queries , File On.

Powered by Discuz! X3.3 R20170401, Rev.54

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้