TextBox
คอนโทรล TextBox
คอนโทรล TextBox เป็นคอนโทรลที่ใช้สำหรับการรับข้อมูลจากผู้ใช้เพื่อนำไปประมวลผลต่อไป นอกจากนี้ยังใช้ในการแสดงข้อความได้อีกด้วยคอนโทรล TextBox สามารถใช้ได้ทั้งแบบรับข้อมูลบรรทัดเดียวและแบบหลายบรรทัดได้ โดยถ้าต้องการให้รับข้อมูลได้หลายบรรทัดจะต้องกำหนดพร็อพเพอร์ตี้ MultiLines ของคอนโทรล TextBox ให้เป็น True (ค่า Default เป็น False)
อีเวนต์ของคอนโทรล TextBox มีดังนี้
- TextChanged เกิดขึ้นเมื่อมีการเปลี่ยนแปลงเกิดขึ้นกับข้อความใน TextBox เช่น การพิมพ์ หรือ การลบข้อความ
เมธอดของคอนโทรล TextBox มีดังนี้
พร็อพเพอร์ตี้ของคอนโทรล TextBox มีดังนี้
การใช้งาน TextBox
การใช้งาน TextBox ส่วนใหญ่คือการอ่านข้อมูลจาก TextBox ซึ่งสามารถอ่านจากพร็อพเพอร์ตี้ Text ส่วนการอ่านเฉพาะข้อความที่ถูกเลือกอ่านจากพร็อพเพอร์ตี้ SelectText เช่น
Dim txt As String, selText As String
txt = TextBox1.Text
selText = TextBox1.SelectedText
MessageBox.Show(txt & vbNewLine & selText)
ข้อมูลที่อ่านจาก TextBox ถ้าเป็นข้อความ จะเป็นข้อมูลชนิดสตริง (String) แต่ถ้าเป็นตัวเลขจะเป็นชนิดจำนวนเต็ม (Integer) ในกรณีที่ต้องการนำค่าตัวเลขที่ใส่ใน TextBox ไปคำนวณ อาจทำการแปลงให้เป็นตัวเลขก่อนโดยใช้คลาส Convert.ToIntxx() เช่น
Dim num As Integer, numInt As Integer, numDoub As Double
num = TextBox1.Text
numInt = Convert.ToInt16(TextBox1.Text) ' เลขจำนวนเต็ม ไม่เกิน 32767
numDoub = Convert.ToDouble(TextBox2.Text) 'เลขทศนิยม
MessageBox.Show(5 + num & vbNewLine & 5 + numInt & vbNewLine & 5 + numDoub)
ตัวอย่างโปรแกรม รับค่าข้อมูลตัวเลขสำหรับการคำนวณผ่านทาง TextBox
1. ให้เพิ่ม Windows Form ใหม่ เข้ามาในโปรเจ็กต์
2. นำคอนโทรลมาวาง และกำหนดพร็อพเพอร์ตี้ที่สำคัญ ดังนี้
3. เขียนโค้ดเพื่อทดสอบการใช้อีเวนต์ TextChanged
3.1 สร้างฟังก์ชัน isNum ตรวจสอบข้อมูลว่าผู้ใช้ใส่ข้อมูลที่เป็นตัวเลขหรือไม่
Private Function isNum(ByVal strNum As String) As Boolean
If (Not IsNumeric(strNum)) Then
Return False
Else
Return True
End If
End Function
3.2 เขียนโค้ดของ TextBox เพื่อตรวจสอบอีเวนต์ TextChanged
Private Sub tbxNum1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbxNum1.TextChanged
If (tbxNum1.Text = " ") Then
Return
End If
If (Not isNum(tbxNum1.Text)) Then
MessageBox.Show("กรุณาป้อนตัวเลขเท่านั้น")
tbxNum1.Clear()
tbxNum1.Focus()
End If
End Sub
Private Sub tbxNum2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbxNum2.TextChanged
If (tbxNum2.Text = " ") Then
Return
End If
If (Not isNum(tbxNum2.Text)) Then
MessageBox.Show("กรุณาป้อนตัวเลขเท่านั้น")
tbxNum2.Clear()
tbxNum2.Focus()
End If
End Sub
4. สร้างฟังก์ชันสำหรับการคำนวณ (calculate) เมื่อรับตัวเลข 2 ตัวเข้ามา แล้วส่งผลลัพธ์กลับ ออกไป (ฟังก์ชันนี้จะถูกเรียกใช้งานเมื่อมีการคลิกที่ปุ่มคำนวณต่าง ๆ)
Private Function Calculate(ByVal op As Char) As Double
Dim num1, num2, num3 As Double
num1 = Convert.ToDouble(tbxNum1.Text)
num2 = Convert.ToDouble(tbxNum2.Text)
Select Case op
Case "+" : Return num1 + num2
Case "-" : Return num1 - num2
Case "x" : Return num1 * num2
Case "/" : Return num1 / num2
Case Else
Return 0.0
End Select
End Function
5. เขียนโค้ดสำหรับปุ่มคำนวณทั้ง 4 ปุ่ม
Private Sub btnPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlus.Click
tbxResult.Text = Calculate(btnPlus.Text)
End Sub
Private Sub btnSubtract_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubtract.Click
tbxResult.Text = Calculate(btnSubtract.Text)
End Sub
Private Sub btnMultiple_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMultiple.Click
tbxResult.Text = Calculate(btnMultiple.Text)
End Sub
Private Sub btnDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDivide.Click
tbxResult.Text = Calculate(btnDivide.Text)
End Sub