Visual Basic

Home

Visual Basic Tutorial
Knowledge Developer Database Internet Resource
Intrinsic Control
1. Intrinsic Control
2. Text box
3. List box
4. กราฟฟิก
5. ตัว Control อื่นๆ
6. เมนู
7. Control Array
 
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
 

Text Box

Text box เป็นตัว control ที่ผู้ใช้สามารถป้อนค่าเข้าสู่โปรแกรมและเป็น bound control ทำให้เป็นตัว control ที่ใช้มากในการประยุกต์ Text box มีคุณสมบัติ และ event มาก ซึ่งคุณสมบัติที่น่าสนใจ คือ

  • MultiLine เป็นคุณสมบัติที่ทำให้ Text box สามารถแสดงผลเป็นแบบหลายบรรทัด โดยให้ตั้งค่าเป็น True

    Sub Form_Local ( )
        Text1.Text = "มี 2 บรรทัด" & vbCrLf & "ใน Text box"
    End Sub

  • Locked เป็นคุณสมบัติ ที่ยอมให้ผู้ใช้เข้าถึงตัว control แต่ไม่ให้แก้ไขค่า ทำให้ตัว control สามารถทำงาน กับ event ต่าง ๆ ได้ตามปกติ แตกต่างจาก Enabled
  • Maxlength เป็นคุณสมบัติใช้ในการควบคุมความยาวของตัวอักษร รวมถึงสามารถนำมาใช้ในการควบคุมการป้อนจำนวนตัวเลข
  • PasswordChar เป็นคุณสมบัติที่นำมาใช้กับการป้อนรหัสผ่าน

การเว้นบรรทัดสามารถใช้ 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

 

  

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