Text Box
Text box เป็นตัว control ที่ผู้ใช้สามารถป้อนค่าเข้าสู่โปรแกรมและเป็น bound control ทำให้เป็นตัว control ที่ใช้มากในการประยุกต์ Text box มีคุณสมบัติ และ event มาก ซึ่งคุณสมบัติที่น่าสนใจ คือ
การเว้นบรรทัดสามารถใช้ vbCrLf หรือตัวอักษรเว้นบรรทัด Chr(13) และ Chr(10)
คุณสมบัติที่ทำงานกับข้อความ
คุณสมบัติ Text เป็นคุณสมบัติ ที่มีการอ้างถึงในการเขียนคำสั่ง และคุณสมบัติ SelStart, SelLength และ SelText เกี่ยวข้องกับข้อความ
- SelStart เป็นตัวเลขที่ใช้ระบุตำแหน่งการแทรกตัวอักษรภายใน Text box ถ้ากำหนดเป็น 0 เคอร์เซอร์ จะอยู่ซ้ายสุด ถ้ากำหนดค่าที่เท่ากับหรือมากกว่าจำนวนตัวอักษร เคอร์เซอร์จะอยู่หลังตัวอักษรตัวสุดท้าย
- SelLength เป็นตัวเลขที่ระบุช่วงการไฮไลต์ตัวอักษรสำหรับการตำแหน่งการแทรกตัวอักษร ถ้ากำหนดเป็น 0 จะไม่มีคลุมตัวอักษร และถ้ากำหนดมากกว่าจำนวนตัวอักษรของข้อความจะคลุมข้อความทั้งหมด
- SelText เป็นคุณสมบัติแสดงการเลือกปัจจุบัน หรือ ส่งกลับค่าว่าง ถ้าไม่มีการคลุมข้อความ ซึ่งการแทรกตัวอักษร จะแทรกที่ตำแหน่งการแทรกปัจจุบัน
Private Sub optAddText_Click()
txtDisplay.SelText = "เพิ่ม String"
txtDisplay.SetFocus
lblStatus = "เพิ่มข้อความใหม่"
End Sub
ดาวน์โหลดตัวอย่าง (TextboxProperty.vbp)
การทำงานของคีย์บอร์ด
event มาตรฐานของ Text box คือ KeyDown, KeyPress และ KeyUp ซึ่งอาจจะใช้ป้องกันแป้นพิมพ์ที่ไม่ต้องการ เช่น การจำกัดเฉพาะค่าตัวเลขให้กับ Text box ของฟิลด์ที่เป็นตัวเลข
Private Sub txtInput_KeyPress(KeyAscii As Integer)
Static nestedNum As Boolean
Static nestedCtrl As Boolean
Select Case KeyAscii
Case Is < 32
If Not nestedNum Then MsgBox "Cotrol keys"
nestedNum = True
Case 48 To 57
If Not nestedCtrl Then MsgBox "แป้นตัวเลข"
nestedCtrl = True
Case Else
KeyAscii = 0
MsgBox "แป้นอื่นๆ"
End Select
End Sub
รหัส ANSI ที่น้อยกว่า 32 เป็นปุ่มควบคุม เช่น Backspace, Alt, Ctrl เป็นต้น นอกจากนี้สามารถเพิ่มค่าหรือลดค่าด้วยการใช้แป้นพิมพ์ Up และ Down
Private Sub txtInput_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp
txtInput.Text = CDbl(txtInput) + 1
Case vbKeyDown
txtInput.Text = CDbl(txtInput) - 1
End Select
End Sub
ดาวน์โหลดตัวอย่าง (TextKey.vbp)
คุณสมบัติ Causes Validation และ Validate Event
คุณสมบัติ CausesValidation และ Validate event ได้รับการเพิ่มใน Visual
Basic ใช้สำหรับการตรวจสอบค่าที่ป้อนเข้ามา ถ้ากำหนด CausesValidation เป็น
True แล้ว Visual Basic จะให้ Validate event เกิดขึ้น เพื่อให้โปรแกรมสามารถตรวจค่าได้
ถ้าค่าไม่ถูกต้องและต้องการให้ยกเลิกค่าที่ป้อนเข้ามา ตั้งค่า Cancel = True
Private Sub txtNumber_Validate(Cancel As Boolean)
If Not IsNumeric(txtNumber.Text) Then
Cancel = True
ElseIf CDbl(txtNumber.Text) < 1 Or CDbl(txtNumber.Text)
> 1000 Then
Cancel = True
End If
If Cancel Then
MsgBox "กรุณาป้อนตัวเลขภายในช่วง [1-1000]",
vbExclamation
End If
End Sub
|