ตัว Control อื่นๆ
Command Button
Command button เป็นตัว control ที่ใช้ในการติดต่อกับผู้ใช้ด้วยเขียนคำสั่งใน Click event
Private Sub cmdOK_Click()
Unload Me
End Sub
เมื่อวาดตัว control ลงบนฟอร์มแล้ว ควรพิมพ์ข้อความในคุณสมบัติ Caption ที่สื่อความในการทำงานและมีคุณสมบัติ 2 อย่างเกี่ยวกับพฤติกรรมของ Command button โดยการตั้งคุณสมบัติ Default เป็น True ทำให้ปุ่มสามารถรับการคลิกของปุ่ม Enter และตั้งคุณสมบัติ Cancel เป็น True ทำให้ปุ่มสามารถทำงานร่วมกับปุ่ม Escape สำหรับคุณสมบัติ Value มีความสัมพันธ์กับคุณสมบัติเมื่อเรียกใช้ ส่งคืนสถานะของตัว control (True คือ การกดปุ่ม และ False คือ อื่นๆ) ตามปกติ จะไม่ใช้คุณสมบัติ Value เนื่องจากสามารถใช้ Click event ได้ แต่ Value ใช้ประโยชน์ได้ดีในการคลิกด้วยโปรแกรม นอกจากนี้ Command button สนับสนุน event แป้นพิมพ์ และเมาส์
การแทรกภาพกราฟฟิกใน Command button ให้ตั้งค่าคุณสมบัติ Style เป็น 1-Graphical แล้วเลือกภาพที่ต้องการในคุณสมบัติ Picture
Option Button
Option button เป็นกลุ่มของตัวเลือกตั้งแต่ 2 ตัวเลือก หรือมากกว่า และทำงานในฐานะเป็นของกลุ่มถ้ามีการเลือกปุ่มใดปุ่มหนึ่ง ปุ่มอื่นจะเปลี่ยนสถานะ ค่าคุณสมบัติของ Option button คล้ายกับ Check box
การสร้าง Option button ให้วาดโดยตรงบนฟอร์ม เพื่อสร้างเป็นกลุ่มตัวเลือก แต่ถ้าต้องการสร้าง Option button กลุ่มที่ 2 ต้องวางใน Frame โดยการวาด Frame แล้ววาง Option button ลงใน Frame จึงจะทำให้เป็นกลุ่มของตัวเลือกที่แยกจากกลุ่มแรก
Drive List Box, Dir List Box และ File List Box
ตัว control กลุ่มนี้เป็นกลุ่มพิเศษที่ใช้ประยุกต์ในระดับ nutshell โดย
Drive list box คล้ายกับ Combo box ใช้แสดงชื่อไดร์ฟ และป้ายชื่อ
Dir list box เป็น List box พิเศษ ที่แสดงโครงสร้างไดเรคทอรีแบบต้นไม้
File list box เป็น List box พิเศษ ที่ใช้แสดงไฟล์ในไดเรคทอรี ซึ่งสามารถกำหนดตัวเลือกให้กรองตามชื่อ, นามสกุลของไฟล์ หรือคุณลักษณะ
ตัว control กลุ่มนี้จะทำงานร่วมกันบนฟอร์มเดียวกัน เช่น เมื่อมีการเลือกไดร์ฟใน Drive list box แล้วให้ Dir list box ปรับค่าเพื่อแสดงไดเรคทอรีบนไดร์ฟ และเมื่อผู้ใช้เลือกไดเรคทอรี File list box จะแสดงรายการไฟล์ในไดเรคทอรีนั้นออกมา แต่การทำงานไม่ได้ขึ้นโดยอัตโนมัติ ผู้เขียนโปรแกรมต้องเขียนคำสั่งกำกับการทำงาน เช่นการแสดงไฟล์ใน File list box ต้องกำหนดคุณสมบัติ Pattern เพื่อให้แสดงไฟล์ที่ต้องการ
แสดงไฟล์ทุกไฟล์
File1. Pattern = "*.*"
แสดงไฟล์บางประเภท เช่น เฉพาะ .txt, .doc และ .rtf ให้เขียนไฟล์แต่ละประเภทแล้วแยกด้วยเครื่องหมาย semicolon ( ; )
File1. Pattern = "*.txt; *.doc; *.rtf"
ตัว control กลุ่มนี้มีข้อจำกัดบางประการในการประยุกต์ และ Visual Basic 6 มีตัว control ใหม่ คือ Image Combo
Dir list box ใช้คุณสมบัติ Path ในการเก็บค่าพาร์ท ตามตัวอย่างเก็บชื่อไดร์ฟ จากคุณสมบัติ Drive ของ Drive list box
Private Sub drvDrive_Change()
' beware: the Drive property also returns the volume label
dirPath.Path = Left$(drvDrive.Drive, 1) & ":\"
End Sub
File list box สามารถกรองนามสกุลไฟล์ โดยใช้คุณสมบัติ Pattern
filFile.Pattern = "*.bmp;*.dib;*.wmf;*.emf;*.gif;*.jpg"
การแสดงและจัดลักษณะภาพบนฟอร์ม สามารถแสดงใน Picture box แต่เตรียมภาพที่นำเข้ามาด้วย Imageก่อนที่จะนำมาจัดลักษณะภาพใน Sub ShowImage
ดาวน์โหลดตัวอย่าง (ImgPreview.vbp)
Scroll Bar
แถบเลื่อนมีตัว control 2 แบบ คือ HScrollBar สำหรับแถบเลื่อนแนวนอน และ VScrollBar สำหรับแถบเลื่อนแนวตั้ง Visual Basic 6 ไม่สนับสนุนให้ตัว control แต่ถ้าต้องการนำไปประยุกต์ให้พิจารณาตั้งค่าคุณสมบัติที่เกี่ยวข้องคือ คุณสมบัติ Max และ Min เพื่อกำหนดช่วงของค่าที่ใช้งาน คุณสมบัติ Small Change สำหรับการเปลี่ยนค่าเมื่อคลิกบน Scroll bar และคุณสมบัติ Large Change สำหรับการเปลี่ยนแปลงค่า เมื่อคลิกที่ลูกศรปลาย Scroll bar ซึ่งคุณสมบัติ Small Change และ Large Change ต้องกำหนดให้สอดคล้องกัน
คุณสมบัติที่สำคัญ คือ Value ใช้ส่งค่าของตำแหน่งของแถบเลื่อน event ที่ใช้กับแถบเลื่อน คือ Change และ Scroll
Private Sub hsbFahrenheit_Change()
Dim Deg As Double
Deg = CDbl(hsbFahrenheit.Value)
txtFahrenheit.Text = Deg
hsbCelcius.Value = CelciusFromFahrenheit(Deg)
txtCelcius.Text = CelciusFromFahrenheit(Deg)
End Sub
ดาวน์โหลดตัวอย่าง (Scroll.vbp)
Timer
Timer เป็นตัว control ที่มองไม่เห็นเมื่อเรียกใช้โปรแกรม โดยใช้สำหรับการส่ง pulse ไปยังโปรแกรมประยุกต์ปัจจุบัน การส่ง pulse ให้เขียนคำสั่งใน Timer event ซึ่งสามารถประยุกต์กับการทำงานเบื้องหลัง คุณสมบัติที่สำคัญ คือ Internal และ Enabled คุณสมบัติ Internal ใช้กำหนดค่าเป็น milliseconds ในการส่ง pulse ส่วนคุณสมบัติ Enabled ใช้ในการควบคุม event เมื่อมีการวางตัว control ลงบนฟอร์ม ค่า Internal ได้รับการกำหนดเป็น 0 แสดงว่าไม่มี event จึงต้องมีการกำหนดค่าคุณสมบัติที่เหมาะสมในตารางคุณสมบัติ หรือ event ของ Form_Load
Private Sub Timer1_Timer()
Static AlarmSounded As Integer
If lblTime.Caption <> CStr(Time) Then
If Time >= AlarmTime And Not AlarmSounded Then
Beep
MsgBox "เวลาปลุก" & Time
AlarmSounded = True
ElseIf Time < AlarmTime Then
AlarmSounded = False
End If
If WindowState = conMinimized Then
' ถ้ามีขนาดเล็กที่สุด ปรับค่า Caption ทุกนาที
If Minute(CDate(Caption)) <> Minute(Time) Then
SetCaptionTime
Else
' กรณีอื่น ปรับค่า Caption ทุกวินาที
lblTime.Caption = Time
End If
End If
End Sub
ดาวน์โหลดตัวอย่าง(Alarm.vbp)
|