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

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

[VB.NET] การเปิด Mdiparent form และ Windows list (ฉบับทำเอง)

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

11

กระทู้

31

โพสต์

437

เครดิต

ผู้ดูแลบอร์ด

Rank: 7Rank: 7Rank: 7

เครดิต
437

แก้ไขครั้งสุดท้ายโดย puklit เมื่อ 2018-1-12 14:34

สวัสดีทุกท่านผมมีรูปแบบการเปิด Mdiparrent form และเมนู Windows list อีกรูปแบบหนึ่งมานำเสนอ
จากโค้ดทั่วๆ ไปจะเขียนดังนี้
  1. VB.NET
  2. Form1.MdiParent = Me
  3. Form1.Show()

  4. C#
  5. Form1 frm = new Form1();
  6. frm.MdiParent = this;
  7. frm.Show();
คัดลอกไปที่คลิปบอร์ด


ประเด็นคือ แล้วถ้า Project ของเรามีซักประมาณ 100+ ฟอร์มหละจะทำยังไง ก็คูณโค้ด 2 บรรทัดข้างบนเข้าไปก็จะทำให้หน้าหลักของเราส่วนใหญ่เต็มไปด้วยคำสั่งเปิดฟอร์มเป็นส่วนใหญ่
ยิ่งถ้าเป็น C# แล้วยิ่งหนักกว่านี้ต้องมีตัวแปรไปอ้างอิง Form ที่เราจะต้องการเปิดก่อนจึงจะเรียกเปิดฟอร์มได้ เพราะเราไม่สามารถเรียกเปิดฟอร์มแบบตรง ๆ เหมือน VB.Net ได้
ซึ่งปัญหานี้เองผมเองคิดว่าลำบากพอสมควรในการเขียนโค้ด จึงได้หาวิธีที่จะเปิดฟอร์มให้มีความยืดหยุ่นมากขึ้นลดการเขียนโค้ดให้น้อยลง
ซึ่งวิธีนี้จะมีประโยชน์สำหรับ Project ที่ค่อนข้างใหญ่มีฟอร์มลูกเยอะ หรือมีการกำหนดสิทธิ์ของผู้ใช้งานให้แสดงเมนูตามสิทธิ์ที่เราได้กำหนดไว้ในฐานข้อมูล
และดึงเมนูแสดงฟอร์มกลับมาในรูปแบบ Treeview , Datagrid view , หรือ Listview เป็นต้น

โดยผมจะไม่ขอลงโค้ดในบอร์ด ให้ท่านโหลดไฟล์ไปทดสอบเอง

ภาพรวมของหน้าหลัก


ตัวอย่างการเปิดฟอร์ม
ท่านสามารถเปิดฟอร์มผ่าน Text menu หรือเมนูปกติ ตามรูปดังนี้


ตัวอย่าง Windows list ในรูปแบบฟอร์ม + Datagridview


ตัวอย่าง Windows list ที่ผมใช้ในโปรแกรม


ดาวน์โหลดโค้ดต้นฉบับแบบเต็ม VB.NET (2015) ได้ที่นี่








ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

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

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

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

GMT+7, 2024-11-27 21:46 , Processed in 0.148129 second(s), 5 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

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