วันอาทิตย์ที่ 15 มีนาคม พ.ศ. 2552

เทคนิคการควบคุมคอนโทลหลายๆ ตัวในเวลาเดียวกัน

เวลาจะ Disable หรือ Enable คอนโทลในฟอร์ม จะใช้ควบคุมผ่าน Property ที่ชื่อว่า Enable โดยการสั่งงานไปยังคอนโทลแต่ละตัวโดยตรง แต่หากในฟอร์มนั้นมีคอนโทลเยอะๆ การเขียนโปรแกรมเพื่อที่จะปิดเปิดหลายๆ ตัวในเวลาเดียวกันเป็นเรื่องที่ลำบากพอสมควร ยิ่งหากมีการปรับเปลี่ยนคอนโทลภายในฟอร์มในขณะทำงานจริงด้วยแล้วยิ่งปวดหัวใหญ่
เทคนิคง่ายๆ ที่ใช้ควบคุมฟอร์มคือการใช้ Property ที่ชื่อว่า tag ซึ่งอยู่ภายในคอนโทลทุกตัวแล้ว มีขั้นตอนดังนี้

1. กำหนดค่าภายใน tag ที่เราต้องการควบคุม เช่น ใส่คำว่า lock ลงใน Property นั้น
2. ทำการควบคุมคอนโทลโดยใช้เงื่อนไขตรวจสอบว่า tag นั้นเป็น string ที่มีค่าตามที่เรากำหนดไว้รึเปล่า ในที่นี้กำหนดค่าคือ lock โดยใช้ code ควบคุมดังนี้

foreach(Control ctrl in this.Controls)
{
    if((ctrl.Tag as string) == "lock")
    {
        ctrl.Enabled = true;
    }
}


หรืออาจจะเขียนเป็นฟังก์ชั่นไว้ใช้ก็สะดวกดี เช่น

private void disableForm(bool status)
{
    foreach(Control ctrl in this.Controls)
    {
        if(ctrl.Tag as string) == "lock")
        {
            ctrl.Enabled = status;
        }
    }
}

1 ความคิดเห็น:

zarnacaban กล่าวว่า...

MEGA DRIVE GAMES | CasinoCybernet UK
› casino › 아산 출장안마 casino MEGA DRIVE GAMES. MEGA DRIVE GAMES. 천안 출장샵 This is a new 부산광역 출장샵 game for your mobile phone and computer, with a 원주 출장안마 whole new 순천 출장샵 world of gaming fun!