Visual Basic

Home

Visual Basic Tutorial
Knowledge Developer Database Internet Resource
Intrinsic Control
1. Intrinsic Control
2. Text box
3. List box
4. กราฟฟิก
5. ตัว Control อื่นๆ
6. เมนู
7. Control Array
 
Visual Basic Tutorial
1. Visual Basic 6
2. ฟอร์ม
3. Intrinsic Control
4. ตัวแปรและ Procedure
5. Class
6. Common Control1
7. Common Control2
8. ActiveX Control
9. Interface
10. ฐานข้อมูล
11. Database Control
 
Developer
Visual Basic
Microsoft Access
Microsoft Excel
 

Control Array

Control array เป็นตัว control หลายตัวที่มีชื่อแประเภทข้อมูลเดียวกัน และใช้ event procedure ร่วมกัน โดยแต่ละ element ใน array สามารถมีคุณสมบัติที่ต่างกัน control array สร้างได้เฉพาะเวลาออกแบบ และมีวิธีการสร้าง 2 วิธี

วิธีที่ 1 วาดตัว control ลงบนฟอร์มแล้ว และกำหนดค่าคุณสมบัติ Index ด้วยตัวเลขที่ไม่เป็นลบ จะได้ control array ที่มี1 element จากนั้นวาดตัว control อื่น แล้วเปลี่ยนคุณสมบัติ Name เป็นชื่อเดียวกัน จะได้ element ต่อไป

วิธีที่ 2 วาดตัว control 2 ตัว ใน class เดียวกัน และกำหนดชื่อเหมือนในคุณสมบัติ Name ซึ่ง จะมีไดอะล๊อกบ๊อกซ์ของ Visual Basic จะถามว่า ต้องการสร้าง control array หรือไม่ ให้คลิกปุ่ม Yes

control array ช่วยทำให้โปรแกรมมีความยืดหยุ่นมากขึ้น

ตัว control มี control array เดียวกัน ที่ใช้ event procedure ร่วมกัน ทำให้ลดการเขียนคำสั่ง

สามารถเพิ่ม element ให้กับ control array ในเวลาเรียกใช้ (หรือเป็นการเพิ่มตัว control ใหม่)

element ของ control array ใช้ทรัพยากรน้อยกว่า ตัว control ธรรมดา

การใช้ Event Procedure ร่วมกัน

event procedure สัมพันธ์กับรายการข้อมูล ใน control array ด้วยพารามิเตอร์ Index ที่เป็นพารามิเตอร์ตัวแรก โดยพารามิเตอร์ Index จะรับดัชนีของ element ที่เกิด event

Private Sub text1_keypress (Index As Integer, KeyAscii As Integer)
  Msgbox "มีการกดแป้นพิมพ์ที่ text1 ("& Index & ")"
End sub

การที่ตัว control หลายตัว ใช้กลุ่มของ event procedure เดียวกัน เป็นเหตุผลที่ดีในการสร้าง control array เช่น การเปลี่ยนสีพื้นหลัง ของ Text box แต่ละตัวให้เป็นสีเหลืองเมื่อรับโฟกัส และเปลี่ยนกลับมาเป็นสีขาวเมื่อผู้ใช้คลิกที่ตัว control อื่น

Private Sub Text1_GotFocus (Index As Integer)
  Text1 (Index).Backcolor = vbYellow
End Sub

Private Sub Text1_LostFocus (Index As Integer)
  Text1 (Index).Backcolor = vbWhite
End sub

control array มีประโยชน์กับ Option button เพราะช่วยให้จำได้ว่า ตัวเลือกสุดท้ายในกลุ่มที่ได้รับการ activated

Dim optHardwareIndex As Integer

Private Sub optHardware_Click (Index As Integer)
  optHardwareIndex = Index
End Sub

การสร้างตัว Control เมื่อเวลาเรียกใช้

การสร้างตัว control ในฐานะ element ของ control array เนื่องจาก control array สร้างได้เฉพาะ เวลาออกแบบ ด้วยใช้คำสั่ง Load

Load txtEmployees(1)
txtEmployees (1).Move 1200 , 2000 , 800 , 350

การยกเลิกตัว control หรือ element ของ control array ใช้คำสั่ง Unload

Unload txtEmployees (1)

การทำงานแบบ Loop ของ Control array

การทำงานกับ control array ด้วยคำสั่งแบบวนรอบ For…Next

For i = txtEmployees.LBound To txtfields.UBound
  txtEmployees(i).text = ""
Next

เมธอด LBound และ UBound เป็นของอ๊อบเจค control array ซึ่งเป็นอ๊อบเจคแบบ Intermediate ของ Visual Basic ในการรวม control array ทั้งหมด

control array สามารถทำงานแบบวนรอบ For Each…Next

Dim txt As TextBox
For Each txt In txtEmployees
  txt.Text = ""
Next

การทำงานกับ เมธอด Count ของอ๊อบเจค control array

DO While txtEmployees.Count > 1
  Unload txtEmployees(txtEmployees.ubound)
Loop

 

  

สงวนลิขสิทธิ (C) widebase