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
 

Status Bar

แถบสถานะได้รับการใช้เป็นที่แสดงสารสนเทศให้กับผู้ใช้ การสร้างอินเตอร์เฟซดังกล่าวใน Visual Basic ทำได้สะดวกด้วยการประยุกต์ Status bar

Status bar มี Panels collection ในการเก็บอ๊อบเจค Panel ซึ่งเป็นพื้นที่ของแถบสถานะที่สามารถรักษาสารสนเทศตามรูปแบบ Status bar มีรูปแบบอัตโนมัติหลายรูปแบบ

การตั้งค่าคุณสมบัติเมื่อออกแบบ

แท็บ General ในไดอะล๊อกบ๊อกซ์ ของ Status bar มีคุณสมบัติ ซึ่งตามปกติจะใช้ตามค่าเริ่มต้นที่แท็บ Panels สามารถสร้างอ๊อบเจค Panel ใหม่ด้วยการคลิกปุ่ม Insert Panel แต่ละอ๊อบเจค Panel มีคุณสมบัติที่เกี่ยวกับลักษณะภายนอกและพฤติกรรม ได้แก่คุณสมบัติ Style ซึ่งมีผลต่อการแสดงภายในตัว control ค่าเริ่มต้นคือ 0-sbrText แสดงข้อความในคุณสมบัติ Text และตั้งค่าเป็นค่าอื่น คือ 1-sbrCaps, 2-sbrNum, 3-sbrlns หรือ 4-sbrScrl ส่วนการแสดงเวลาปัจจุบันด้วย 5-sbrTime หรือวันที่ปัจจุบันด้วย 6-sbrDate

การทำงานเมื่อเรียกใช้

การทำงานกับ Status bar ในเวลาเรียกใช้ มีความต้องการในการเปลี่ยนคุณสมบัติ Text ซึ่งคุณสมบัติ Style ของอ๊อบเจค Panel ตั้งค่าเป็น 0-sbrText เช่น การแสดงข้อความใน Panel ที่ 3
StatusBar1.Panel(3).Text = "Hello World"

การสร้างและยกเลิกอ๊อบเจค Panel

การสร้างอ๊อบเจค Panel ใช้เมธอด Add ของ Panels collection มีไวยากรณ์

Add ([Index], [Key], [Text], [Style], [Picture]) As Panel

อากิวเมนต์มีความหมายตรงกับคุณสมบัติของอ๊อบเจค Panel

'staStatus As StatusBar
With staStatus.Panels.Add(1, "moon", "Click to start animation",    sbrText, imgMoon(0))
   .Alignment = sbrCenter
   .AutoSize = sbrContents
   .Tag = "Animated"
End With

การตอบสนองการทำงานของผู้ใช้

Status bar มี event คู่หนึ่ง คือ PanelClick และ PanelDblClick ซึ่งจะเกิดขึ้นเมื่อผู้ใช้คลิกหรือดับเบิลคลิกบนอ๊อบเจค Panel และ Panel ที่ถูกคลิกจะส่งผ่านเป็นอากิวเมนต์ ของ event

Private Sub staStatus_PanelClick(ByVal Panel As MSComctlLib.Panel)
   Select Case Panel.Tag
      Case "Editable"
         Dim s As String
         s = InputBox("Enter a new text for this panel", , Panel.Text)
         If Len(s) Then Panel.Text = s
      Case "Animated"
         Animation = Not Animation
         tmrTime.Enabled = Animation
         Panel.Text = "Click to " & IIf(Animation, "stop", "start") & " animation"
         If Animation Then
            cmdAnimate.Caption = "หยุดภาพเคลื่อนไหว"
         Else
            cmdAnimate.Caption = "แสดงภาพเคลื่อนไหว"
         End If
   End Select
End Sub

การสร้างไอคอนเคลื่อนไหว

อ๊อบเจค Panel มีคุณสมบัติ Picture ที่ใช้ในการกำหนดค่าระหว่างการออกแบบ และสามารถกำหนดภาพให้กับคุณสมบัติด้วยการใช้คำสั่ง

Private Sub tmrTime_Timer()
   Static n As Integer
   ' แสดงภาพต่อไป
   staStatus.Panels("moon").Picture = imgMoon(n).Picture
   n = (n + 1) Mod 8
End Sub

การสลับสถานะของล๊อกคีย์

Status bar สามารถแสดงสถานะของคีย์ Caps, Num, Scroll และ Insert และไม่ยินยอมให้สลับเปลี่ยนด้วยการคลิกของเมาส์ แต่ถ้าต้องการเปลี่ยนสามารถใช้ฟังก์ชัน API และคำสั่งใน event procedure ของ Click หรือ DblClick

' การประกาศฟังก์ชัน API
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long

Private Sub staStatus_PanelDblClick(ByVal Panel As MSComctlLib.Panel)
   Select Case Panel.Style
      Case sbrCaps
         ToggleKey vbKeyCapital
      Case sbrNum
         ToggleKey vbKeyNumlock
      Case sbrScrl
         ToggleKey vbKeyScrollLock
      Case sbrIns
         ToggleKey vbKeyInsert
   End Select
   staStatus.Refresh
   txtKey.SetFocus
End Sub

Sub ToggleKey(vKey As KeyCodeConstants)
   Dim keys(255) As Byte
   ' อ่านสถานะปัจจุบันของคีย์บอร์ด
   GetKeyboardState keys(0)
   ' เปลี่ยนบิต 0 ของคีย์เสมือน ที่สนใจ
   keys(vKey) = keys(vKey) Xor 1
   ' บังคับสถานะของคีย์บอร์ดใหม่
   SetKeyboardState keys(0)
End Sub

ดาวน์โหลดตัวอย่าง (Statusbar.vbp)

Progress Bar

Progress bar เป็นตัว control ที่ใช้รายงานให้ผู้ใช้ทราบเกี่ยวกับสถานะความคืบหน้าของการทำงานและเป็นตัว control ที่ไม่มีอ๊อบเจคที่ขึ้นต่อ event เฉพาะ

การตั้งค่าคุณสมบัติเมื่อออกแบบ

ในระหว่างการออกแบบมีค่าคุณสมบัติจำนวนหนึ่งที่ต้องตั้งค่าภายหลังวาง Progress bar บนฟอร์ม โดยทั่วไปจะใช้ค่าเริ่มต้น คุณสมบัติที่สำคัญ คือ Min และ Max สำหรับการหาค่าน้อยที่สุดและมากที่สุด ที่สามารถแสดงโดย Progress bar
คุณสมบัติใหม่ ของ Progress bar ที่เพิ่มขึ้นใน Visual Basic 6 คือคุณสมบัติ Orientation และ Scrolling โดย Orientation ให้สร้างแถบแนวตั้ง ส่วน Scrolling มีตัวเลือกระหว่าง Segmentation bar และ Smoother bar

การทำงานเมื่อเรียกใช้

ในทางปฏิบัติ สามารถใช้คำสั่งในการตั้งค่าคุณสมบัติ Value เป็นตัวเลขภายในช่วง Min กับ Max

ดาวน์โหลดตัวอย่าง (Progressbar.vbp)

 

  

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