Image Combo
Image combo เป็นตัว control ใหม่ใน Visual Basic 6 ลักษณะภายนอกเหมือนกับ Combo box ที่สนับสนุนภาพและการย่อหน้าที่ต่างกันของแต่ละรายการในด้านโปรแกรม สิ่งที่แตกต่างจาก Combo box คือ Image combo ใช้สถาปัตยกรรม Object-Oriented และมี collection ของ Combo items เป็นที่เก็บอ๊อบเจค Combo item
การตั้งค่าคุณสมบัติเมื่อออกแบบ
Image combo มีคุณสมบัติที่ต้องตั้งค่าคือ คุณสมบัติ ImageList ที่อ้างถึง Image list ที่เก็บภาพสำหรับการแสดงหน้าแต่ละอ๊อบเจค Combo item คุณสมบัติ Indentation ตั้งค่าเริ่มต้นของการย่อหน้าของอ๊อบเจค Combo item และสามารถรวมกับแหล่งข้อมูลได้ และสนับสนุนคุณสมบัติ DataXXXX
การทำงานเมื่อเรียกใช้
Image combo เพิ่มรายการโดยใช้เมธอด Add ของ collection ของ Combo items ตามไวยากรณ์นี้
Add ( [Index], [Key], [Text], [Image], [Selimage], [Indentation]) As ComboItem
Index เป็นตำแหน่งที่แทรกรายการ Combo item ใหม่
Key เป็น คีย์ ของ collection
Text เป็นข้อความที่ปรากฏในตัว control
Image เป็นภาพที่เกี่ยวข้อง
Selimage เป็นภาพที่แสดงออกเมื่อมีการเลือกรายการ
Indentation เป็นระดับการย่อหน้า
Sub LoadDrivesToImageCombo(Imgcbo As ImageCombo)
Dim fso As New Scripting.FileSystemObject, dr As Scripting.Drive
Dim drLabel As String, drImage As String
' ตัว control มีสามไอคอน ตามชื่อ
Imgcbo.ComboItems.Add , , "My Computer", "MyComputer"
For Each dr In fso.Drives
' รูปของไดร์ฟแต่ละประเภท
Select Case dr.DriveType
Case Removable: drImage = "FloppyDrive"
Case CDRom: drImage = "CDDrive"
Case Else: drImage = "HardDrive"
End Select
' ดึง ตัวหนังสือและชื่อ volumn
drLabel = dr.DriveLetter & ": "
If dr.IsReady Then
If Len(dr.VolumeName) Then drLabel = drLabel & "[" &
dr.VolumeName & "]"
End If
Imgcbo.ComboItems.Add , dr.DriveLetter, drLabel, drImage, , 2
Next
' เลือกไดร์ฟปัจจุบัน
Set Imgcbo.SelectedItem = Imgcbo.ComboItems(Left$(CurDir$, 1))
End Sub
การเลือกอ๊อบเจค Combo item สามารถใช้คุณสมบัติ SelectItem ของ Image combo (ตามตัวอย่างข้างบน) แล้ว ยังสามารถใช้คุณสมบัติ Selected ของแต่ละอ๊อบเจค Combo item
' เมธอดทางเลือกของไดร์ฟปัจจุบัน
Set Imgcbo.ComboItems(Left$(CurDir$, 1)).Selected = True
การปรับปรุงข้อความโดยไม่มีการยกเลิกหรือเพิ่ม สามารถใช้แบบเดียวกับ Combo Box มาตรฐาน
' เปลี่ยนข้อความของข้อมูลแรก
ImgCombo.ComboItems(1).Text = "My computer"
การยกเลิกรายการ Combo item ใช้เมธอด Remove ของ collection ของ Combo items
และถ้าต้องการลบทั้งหมด ใช้เมธอด Clear ของ collection
ดาวน์โหลดตัวอย่าง (ImgCombo.vbp)
|