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)
|