วันจันทร์ที่ 4 มกราคม พ.ศ. 2553

Image Combo

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)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น