Visual Basic

Home

Visual Basic Tutorial
Knowledge Developer Database Internet Resource
Common Control 1
1. Common Control 1
2. Image List
3. List View
4. Tree View
5. Image Combo
6. Status Bar และ Progress Bar
 
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
 

Image List

Image list เป็นตัว control ที่มักจะใช้เป็น container สำหรับภาพและไอคอน ที่ใช้โดยตัว control อื่น เช่น Tree view, List view, Tab strip และ Image combo ขณะที่เรียกใช้โปรแกรม Image list จะมองไม่เห็นและแสดงภาพที่เก็บไว้ การใช้ Image list เก็บภาพอื่น ช่วยให้การประมวลผลเร็วขึ้น

การเพิ่มภาพ

Image list เก็บภาพจากการสร้าง collection ของ List images โดยแต่ละรายการของ List image จะเก็บภาพ 1 ภาพ และการอ้างอิงอ๊อบเจค ผ่านดัชนี หรือ String Key รูปแบบกราฟฟิก ที่ List image สามารถเก็บได้คือ บิตแม็บ (.bmp), ไอคอน (.ico), เคอร์เซอร์ (.car), JPEG (.jpg), GIF (.gif)

การเพิ่มภาพขณะออกแบบ

การเพิ่มภาพขณะออกแบบทำได้ง่าย

  1. วาด Image list ลงบนฟอร์ม
  2. คลิกเมาส์ปุ่มขวา เลือกคำสั่ง Properties จากเมนู pop-up เมื่อไดอะล๊อกบ๊อกซ์ Properties ปรากฏขึ้น ให้ไปที่แท็บ Image จากนั้นคลิกปุ่มคำสั่ง Insert Picture แล้วดึงภาพจากตำแหน่งที่เก็บ
  3. กำหนด Key ด้วยข้อความให้แต่ละภาพ เพื่อทำให้สะดวกในการอ้างอิง ข้อความของ Key (string key) ที่ใช้ต้องไม่ซ้ำกันภายใน collection รวมทั้งสามารถระบุข้อความสำหรับคุณสมบัติ Tag ของภาพเพื่อใช้ในการอธิบายภาพหรือสารสนเทศเกี่ยวกับภาพ ถ้ามีการเพิ่มหรือลบ image ต่อมา มีผลกับตัวเลขดัชนีของ image

การเพิ่มภาพใน collection ของ List image สามารถจัดได้ทุกขนาด ถ้าใช้ภาพเหล่านี้ใน Common control อื่นๆ เมื่อมีการปรับขนาดภาพแรก ภาพทั้งหมดต่อไปจะได้รับการปรับขนาดตามขนาดของภาพแรก

การเพิ่มภาพขณะเรียกใช้

การเพิ่มภาพขณะเรียกใช้ ใช้เมธอด Add ใน collection ของ List image และมีไวยากรณ์ คือ

Add ([Index], [Key], [Picture]) As ListImage

Index คือ ค่าดัชนีของภาพ
Key คือ key string ของภาพ
Picture คือ ตำแหน่งที่เก็บหรือพาร์ทของภาพ

' ilsToolbar AsImageList
Dim lstitem As ListImage
Set lstitem = ilsToolbar.ListImages.Add(, "Save", LoadPicture("C:\VB6Prog\save.bmp"))

ถ้าข้ามอากิวเมนต์ Index เป็นการเพิ่มภาพใหม่ต่อท้ายของ collection
ให้ดู project ตัวอย่าง "ImgList.vbp" ถ้าต้องการกำหนดข้อความให้คุณสมบัติ Tag ของอ๊อบเจคที่สร้าง การเพิ่มภาพต้องทำโดยไม่มีตัวแปร

With ilsToolbar.ListImages.Add(, "Cut", LoadPicture("C:\VB6Prog\cut.bmp"))
   .Tag = "Cut icon"
End With

การยกเลิกภาพใน List image ให้ใช้เมธอด Remove ใน collection ของ List image

ilsToolbar.ListImages.Remove "Cut"

การยกเลิกภาพทั้งหมดใช้เมธอด Clear

ilsToolbar.ListImages.Clear

การดึงภาพออกมาและการวาดภาพ

ถ้ามีการกำหนดความสัมพันธ์ระหว่าง Image list กับตัว control อื่น การทำงานในการดึงภาพออกและแสดงภาพทำได้โดยอัตโนมัติ แต่ถ้าต้องการดึงภาพออกมาทั้งหมด หรือสั่งพิมพ์ภาพต้องศึกษาการประยุกต์คุณสมบัติและเมธอด

การดึงภาพทีละภาพ

อ๊อบเจค List image แต่ละอ๊อบเจค ใช้คุณสมบัติ Picture สำหรับการดึงภาพออกมาและกำหนดให้กับตัว control ตามปกติ คือ Picture หรือ Image

' picPicture As Picture box
Set picToolbar.Picture = ilsToolbar.ListImages("Save").Picture

โดยทั่วไปคุณสมบัติ Picture ของอ๊อบเจค List image ใช้ได้เหมือนกับคุณสมบัติ Picture ของ Picture box หรือ Image

With ilsToolbar
   PaintPicture.ListImages("Cut").Picture, 0, 0, _
   ScaleX(.ImageWidth, vbPixels) * 2, ScaleY(.ImageHeight, vbPixels) * 4
End With

การใช้เมธอด PaintPicture ทำให้สามารถแสดงภาพใน List image บนฟอร์มหรือ Picture box อ๊อบเจค List image มีเมธอด ExtractIcon สำหรับการสร้างไอคอนและส่งออกไปยังผู้เรียก

frmImglist.MouseIcon = ilsToolbar.ListImages("Pointer").ExtractIcon

เมธอด SavePicture ใช้บันทึกภาพ

SavePicture ilsToolbar.ListImages("Save").Picture, "C:\My Documents\save.bmp"

ตัวอักษรใหญ่และเล็กมีผลแตกต่าง (case sensitivity) กับการใช้ใน collection ของ List image

การสร้างภาพโปร่งใส

Image list มีคุณสมบัติ MaskColor ในการหาค่าของสีเพื่อทำให้โปร่งใส เมื่อมีการทำงานกราฟฟิกบนอ๊อบเจค List image หรือการแสดงภาพภายในตัว control อื่น การกำหนดค่าสีให้กับคุณสมบัติ MaskColor ทำได้ทั้งในเวลาออกแบบและเรียกใช้ด้วยคำสั่ง และต้องตรวจสอบว่าคุณสมบัติ UseMaskColor ตั้งค่าเป็น True

ilsToolbar.MaskColor = vbWhite
ilsToolbar.UseMaskColor = True

 

  

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