|
แก้ไขครั้งสุดท้ายโดย puklit เมื่อ 2018-5-9 10:39
ผมขออนุญาตอาจารย์ทองก้อนเพิ่มอีกรูปแบบครับ
การระบุประเภทข้อความให้กับ Textbox ในรูปแบบ Class
โดยหากต้องการข้อมูลประเภทไหนก็ให้ Textbox เรียกใช้ผ่าน Class Clstextbox โดยใช้ Events KeyPress ดังนี้ครับ
ตัวอย่างฟอร์ม
โค้ดของ Class Clstextbox
- Public Class ClsTextbox
- ' ระบุประเภทรูปแบบของ Textbox
- Public Enum Text_type
- Number_Only
- Number_with_dot
- Thai_alphabet
- Thai_alphabet_with_number
- English_alphabet
- English_alphabet_with_number
- End Enum
- ' กำหนดรูปแบบข้อความของ Textbox แต่ละประเภท
- Public Shared Sub Set_textbox_value(sender As Object, e As KeyPressEventArgs, Value_Type As Text_type)
- Dim key_ascii As Byte
- key_ascii = Asc(e.KeyChar) ' รับค่า e.keychar จาก textbox เป็น Key ascii
- ' อนุญาตให้ใช้ปุ่ม Backspace = 8 / Enter = 13
- If key_ascii = 8 Or key_ascii = 13 Then
- Exit Sub
- End If
- Select Case (Value_Type)
- Case Text_type.Number_Only
- If key_ascii >= 48 And key_ascii <= 57 Then ' 48 = 0 - 57 = 9
- e.Handled = False
- Else
- e.Handled = True
- End If
- Case Text_type.Number_with_dot
- If ((key_ascii >= 48 And key_ascii <= 57) Or key_ascii = 46) Then ' 48 = 0 - 57 = 9 / 46 - "."
- e.Handled = False
- Else
- e.Handled = True
- End If
- Case Text_type.Thai_alphabet
- If key_ascii >= 161 And key_ascii <= 240 Then ' ภาษาไทยรวมทั้งตัวสระ + วรรณยุกต์
- e.Handled = False
- Else
- e.Handled = True
- End If
- Case Text_type.Thai_alphabet_with_number
- If key_ascii >= 48 And key_ascii <= 57 Then ' 48 = 0 - 57 = 9
- e.Handled = False
- ElseIf key_ascii >= 161 And key_ascii <= 240 Then
- e.Handled = False
- Else
- e.Handled = True
- End If
- Case Text_type.English_alphabet
- If key_ascii >= 58 And key_ascii <= 122 Then ' ภาษาอังกฤษ 58 - 122
- e.Handled = False
- Else
- e.Handled = True
- End If
- Case Text_type.English_alphabet_with_number
- If key_ascii >= 48 And key_ascii <= 57 Then ' 48 = 0 - 57 = 9
- e.Handled = False
- ElseIf key_ascii >= 58 And key_ascii <= 122 Then ' ภาษาอังกฤษ 58 - 122
- e.Handled = False
- Else
- e.Handled = True
- End If
- End Select
- End Sub
- End Class
คัดลอกไปที่คลิปบอร์ด
กรณีที่ต้องการกำหนดให้ Textbox ใช้รูปแบบข้อความที่สามารถป้อนได้ในแต่ละรูปแบบ ให้เรียกใช้ผ่าน Class Clstextbox โดยใช้ Events KeyPress ดังนี้
- Public Class Form1
- ' Number_Only
- Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
- ClsTextbox.Set_textbox_value(sender, e, ClsTextbox.Text_type.Number_Only)
- End Sub
- 'Number_with_dot
- Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress
- ClsTextbox.Set_textbox_value(sender, e, ClsTextbox.Text_type.Number_with_dot)
- End Sub
- ' Thai_alphabet
- Private Sub TextBox3_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox3.KeyPress
- ClsTextbox.Set_textbox_value(sender, e, ClsTextbox.Text_type.Thai_alphabet)
- End Sub
- ' Thai_alphabet_with_number
- Private Sub TextBox4_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox4.KeyPress
- ClsTextbox.Set_textbox_value(sender, e, ClsTextbox.Text_type.Thai_alphabet_with_number)
- End Sub
- ' English_alphabet
- Private Sub TextBox5_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox5.KeyPress
- ClsTextbox.Set_textbox_value(sender, e, ClsTextbox.Text_type.English_alphabet)
- End Sub
- ' English_alphabet_with_number
- Private Sub TextBox6_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox6.KeyPress
- ClsTextbox.Set_textbox_value(sender, e, ClsTextbox.Text_type.English_alphabet_with_number)
- End Sub
คัดลอกไปที่คลิปบอร์ด
ท่านที่สนใจสามารถดาวน์โหลดโค้ด VB2017 ได้ที่นี่ครับ
Textbox_valueVB.rar
(186.68 KB, ดาวน์โหลดแล้ว: 15756)
|
|