คงไม่เหมือนกันเพราะปูสามารถเดินหลุดออกจากกระด้งได้
แต่ ฟอร์มมันจะหลุดออกจาก SplitContainer ไม่ได้
อ่านไปอ่านมาก็คงจะแปลกใจ ว่าทำไมถึงต้องมาจับฟอร์มใส่ไว้ใน SplitContainer
แต่เมื่ออ่านบทความนี้ แล้วทำตามจนสำเร็จ ก็คงจะไม่แปลกใจว่าทำไมเราจะต้องจับฟอร์มให้มันมาอยู่ใน SplitContainer
เพราะเหตุเหรอ ก็อยากให้มันมาอยู่ในนี้ ยิ่งอ่านยิ่งงงใช่ไหม งั้นมาเริ่มทำกันเลยดีกว่า
1. เปิด Visual Studio 20xx จากนั้นคลิกเลือก New Project.... เลือก Visual Basic -> Windows -> Windows Forms Application ที่ช่อง Name ป้อน myFormSplitContainer
2. ที่ฟอร์ม Designer ของ form1 ให้ตกแตงฟอร์มตามตัวอย่าง
- ลาก MenuStrip มาวางไว้ที่ฟอร์ม แล้วใส่รายการตามภาพด้านบน - ลาก SplitContainer มาวางไว้ที่ฟอร์ม - ลาก TreeView มาวางไว้ที่ SplitContainer ฝั่งด้านซ้าย (panel 1) แล้วจัดให้สวยงาม - ให้กำหนด Property ของฟอร์ม ชื่อ IsMdiContainer กำหนดให้เป็น True
3. ที่ TreeView ให้คลิกที่แถบมุมบนด้านขวาเพื่อเปิดเมนู แล้วเลือก Edit Nodes... - ทำการเพิ่ม Node เข้าไปโดยคลิกที่ Add Root หรือ Add Child
4. จากนั้นไปที่เมนู ดับเบิ้ลคลิกที่รายการเมนูชื่อ "เปิดฟอร์ม 1" (จะเข้าหน้าต่างเขียนคำสั่ง)
ให้เขียนคำสั่ง ดังนี้ Private Sub เปดฟอรม1ToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles เปดฟอรม1ToolStripMenuItem.Click If myFindForm("form2") = False Then Dim frm As Form2 frm = New Form2 frm.TopLevel = False frm.Parent = Me.SplitContainer1.Panel2 frm.Show() frm.BringToFront() End If End Sub Function myFindForm(ByVal frm As String) As Boolean For Each ctl As Control In Me.SplitContainer1.Panel2.Controls If ctl.Name.ToUpper = frm.ToUpper Then ctl.Show() ctl.BringToFront() Return True End If Next Return False End Function 5. ให้ทำการสร้างฟอร์มขึ้นมาใหม่อีก 1 ฟอร์ม โดยกดปุ่ม Ctrl + Shift + A จากนั้นคลิกที่ Windows Form -> Windows Form แล้วตั้งชื่อฟอร์มว่า Form2.vb ดังภาพ
6. ตกแต่งหน้าจอของฟอร์ม form2.vb ตามชอบใจ หรือจะเลียนแบบ ตามภาพด้านล่าง
7. ทำการ run โปรแกรมที่เขียนไว้โดยกดปุ่ม F5 จากนั้นก็ทดสอบเลือกเมนู ฟอร์ม -> เปิดฟอร์ม 1 ก็จะได้ผลลัพธ์ดังภาพ
ถ้าหากผู้อ่านทำตามขั้นตอนมาถึงจนได้ผลลัพธ์ที่เห็นดังภาพ ก็คงหมดข้อสงสัยว่าทำไม่ต้องจับฟอร์มใส่ SplitContainer โชคดี มีวิธีใช้ฟอร์มแบบใหม่ ๆ
2 ความคิดเห็น:
มัน clear ของเก่าหมดเลยอะครับ
เช็คได้ไหมว่า form ใหนที่เปิดอยู่แล้วไม่ต้อง clear และก็ไม่ต้องเปิดใหม่
ขอบคุณครับ
แก้โค้ดให้ใหม่แล้วตามที่ต้องการ
แสดงความคิดเห็น