|
แก้ไขครั้งสุดท้ายโดย puklit เมื่อ 2018-5-10 13:49
หลาย ๆ ท่านคงผ่านการเคลียค่า Control (Textbox & Label) หลายตัวพร้อมกันมาแล้วในการเขียนโปรแกรม
โดยใช้คำสั่งเบื้องต้นมาแล้ว เช่น
Textbox ==> Textbox1.Clear() หรือ TextBox1.Text = "" เป็นต้น
Label ==> Label1.Text=""
แต่ถ้าหากการเคลียค่าใน Textbox หรือ Label หลาย ๆ ตัวพร้อมกันก็ต้องเขียน สั่งทีละตัวจนกว่าจะครบ
ซึ่งถ้าจะนับโค้ดเฉพาะเคลียค่า Textbox หรือ Label ทั้งโปรเจคคงนับได้หลายร้อยจนถึงหลาย ๆ พันบรรทัด
นี่เป็นเฉพาะการเคลียค่าคอนโทร์ลเท่านั้น ยังไม่รวมเนื้อหาหรือวิธีการและขั้นตอนการประมวลผลของตัวโปรแกรมเลย
และจุดนี้เองทำให้เราต้องมาเขียนโค้ดซ้ำซ้อนและใช้เวลาค่อนข้างมากในการจัดการกับคอนโทรล์เหล่านี้
วันนี้ผมจึงขอนำเสนอวิธีการจัดการกับคอนโทรล์เหล่านี้อีกรูปแบบหนึ่ง เขียนครั้งเดียวสามารถใช้ได้ทั้งโปรเจคเลย หรือยังสามารถทำเป็น .dll ไฟล์ Import เข้ามาใช้ก็ได้
การจัดการกับคอนโทรล์เหล่านี้ผมมีเทคนิคดังนี้
- จัดกลุ่มคอนโทรล์ตามประเภทของมัน เช่น Textbox หรือ Label
- ตั้งชื่อเฉพาะให้กับคอนโทรล์ในแต่ละกลุ่มที่ต้องการเคลียค่า เช่น
Textbox ==> txtตามด้วยชื่อ หรือ tตามด้วยชื่อ
Label ==> Labelตามด้วยชื่อ หรือ lตามด้วยชื่อ
(ตรงชื่อท่านสามารถตั้งตั้งได้หลายกลุ่มเพื่อให้ง่ายและสะดวกในการจัดการ แต่ต้องแยกให้ชัดเจนออกจากกลุ่มคอนโทรล์เดียวกันที่ไม่ต้องการเคลียค่าหรือจัดการกับมัน )
เพราะที่ทำไปนี้คือผมใช้หลักการจัดการกับคอนโทรล์เหล่านั้น โดยเฉพาะเจาะจง เช่น ต้องการเคลียค่า Textbox ที่มีชื่อของ Textbox เริ่มต้นด้วย txt* เท่านั้น
หาก Textbox ตัวไหนที่อยู่บนฟอร์มที่เราไม่ต้องการจัดการกับมันก็ห้ามตั้งชื่อด้วย txtตามด้วยชื่อเด็ดขาด เพราะคำสั่งจะไปกระทำกับคอนโทรล์เหล่านี้ด้วย
ตัวอย่างฟอร์ม
1. เคลียเฉพาะ Textbox ทั้งหมดในฟอร์มที่มีชื่อขึ้นต้นด้วย Text เท่านั้น
2. เคลียเฉพาะ Textbox ทั้งหมดในฟอร์มที่มีชื่อขึ้นต้นด้วย Txt เท่านั้น
3. เคลียเฉพาะ Label ทั้งหมดในฟอร์มที่มีชื่อขึ้นต้นด้วย LabelV เท่านั้น (สงวนชื่อ Label ให้กับ Label ที่ไม่ต้องการให้คำสั่งไปจัดการกับคอนโทรล์เหล่านี้)
4. เคลียเฉพาะ Label ทั้งหมดในฟอร์มที่มีชื่อขึ้นต้นด้วย lb เท่านั้น (สงวนชื่อ Label ให้กับ Label ที่ไม่ต้องการให้คำสั่งไปจัดการกับคอนโทรล์เหล่านี้)
ตัวอย่าง Code จัดการคอนโทรล์ (อยู่ในรูปแบบ Class) ท่านดาวน์โหลดไปดูเองนะครับ
ตัวอย่างโค้ดที่แต่ละฟอร์มเรียกใช้งาน
- Public Class Form1
- ' Form Load
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- btRefTextbox_Name_Click(sender, e)
- End Sub
- ' แสดงชื่อ Textbox ตามที่ระบุอีกครั้ง
- Private Sub btRefTextbox_Name_Click(sender As Object, e As EventArgs) Handles btRefTextbox_Name.Click
- Dim txt As New ClsClear_Contorl()
- txt.Refresh_Textbox(Me, "Text") ' แสดงชื่อ Textbox = Textbox.Name ตาม Control Textbox ที่มีชื่อเริ่มต้นด้วย Text
- txt.Refresh_Textbox(Me, "Txt") ' แสดงชื่อ Textbox = Textbox.Name ตาม Control Textbox ที่มีชื่อเริ่มต้นด้วย Txt
- End Sub
- ' แสดงชื่อ Label ตามที่ระบุอีกครั้ง
- Private Sub btRefLabel_Name_Click(sender As Object, e As EventArgs) Handles btRefLabel_Name.Click
- Dim lb As New ClsClear_Contorl()
- lb.Refresh_Label(Me, "lb") ' แสดงชื่อ Label = Label.Name ตาม Control Label ที่มีชื่อเริ่มต้นด้วย lb
- lb.Refresh_Label(Me, "LabelV") ' แสดงชื่อ Label = Label.Name ตาม Control Label ที่มีชื่อเริ่มต้นด้วย LabelV
- End Sub
- #Region "Clear specific of textbox"
- ' เคลียค่า Textbox ที่มีชื่อขึ้นต้นด้วย Text เท่านั้น
- Private Sub btClsTextBox_Click(sender As Object, e As EventArgs) Handles btClsTextBox.Click
- Dim txt As New ClsClear_Contorl()
- txt.Cls_Textbox(Me, "Text") ' เคลืยค่า Control Textbox ทั้งหมดในฟอร์มที่มีชื่อขึ้นต้นด้วย Text
- End Sub
- ' เคลียค่า Textbox ที่มีชื่อขึ้นต้นด้วย Txt เท่านั้น
- Private Sub btClsTxtBox_Click(sender As Object, e As EventArgs) Handles btClsTxtBox.Click
- Dim txt As New ClsClear_Contorl()
- txt.Cls_Textbox(Me, "Txt") ' เคลืยค่า Control Textbox ทั้งหมดในฟอร์มที่มีชื่อขึ้นต้นด้วย Txt
- End Sub
- #End Region
- #Region "Clear specific of label"
- ' เคลียค่า Label ที่มีชื่อขึ้นต้นด้วย LabelV เท่านั้น
- Private Sub btClsLabelV_Click(sender As Object, e As EventArgs) Handles btClsLabelV.Click
- Dim lb As New ClsClear_Contorl()
- lb.Cls_Label(Me, "LabelV") ' เคลืยค่า Control Label ทั้งหมดในฟอร์มที่มีชื่อขึ้นต้นด้วย LabelV
- End Sub
- ' เคลียค่า Label ที่มีชื่อขึ้นต้นด้วย lb เท่านั้น
- Private Sub btClslb_Click(sender As Object, e As EventArgs) Handles btClslb.Click
- Dim lb As New ClsClear_Contorl()
- lb.Cls_Label(Me, "lb") ' เคลืยค่า Control Label ทั้งหมดในฟอร์มที่มีชื่อขึ้นต้นด้วย lb
- End Sub
- #End Region
- End Class
คัดลอกไปที่คลิปบอร์ด
ท่านที่สนใจสามารถ ดาวน์โหลดโค้ดต้นฉบับแบบเต็ม VB.NET2017 ได้ที่นี่
|
ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง
คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน
x
|