ผู้เขียน หัวข้อ: เรียนรู้ครั้งที่ 4 [การเขียนโค้ดให้ TextBox รับเฉพาะตัวเลขเท่านั้น]  (อ่าน 61 ครั้ง)

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 563
    • ดูรายละเอียด
    • อีเมล์
TextBox เป็นคอนโทรลที่ให้ผู้ใช้โปรแกรมสามารถป้อนข้อความได้(โดยการพิมพ์) ข้อความที่ทำการพิมพ์เข้าไปโปรแกรมนำไปใช้งานในตัวโปรแกรมตามที่ผู้เขียนออกแบบใช้งาน และในบางครั้งการป้อนเข้าไปต้องการรับเฉพาะตัวเลขเท่านั้นเพื่อนำไปคำนวณต่าง ๆ ตามที่ออกแบบไว้ หากผู้ใช้งานพิมพ์อักขระอื่นที่ไม่ใช่ตัวเลขทำให้การคำนวณผิดพลาดได้ การเรียนรู้ครั้งนี้เป็นวิธีการที่ทำให้ TextBox รับเฉพาะตัวเลขเท่านั้น ขั้นตอนดังนี้

1. วางคอนโทรล TextBox ลงใน Form โปรแกรมดังรูป


2. เลือกเหตุการณ์กระตุ้นคอนโทรล TextBox ให้เป็น KeyPress ดำเนินการดังนี้
   - คลิกที่คอนโทรล TextBox
   - คลิกไอคอนสายฟ้าในกล่อง Properties
   - ดับเบิลคลิกที่คำว่า KeyPress


3. ใส่โค้ดให้รับเฉพาะตัวเลขในคอนโทรล TextBox ที่เหตุการณ์กระตุ้น KeyPress

โค้ดใน TextBox (คัดลอกไปวางได้เลย)

โค๊ด: [Select]
            // Verify that the pressed key isn't CTRL or any non-numeric digit
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
            {
                e.Handled = true;
            }

            // If you want, you can allow decimal (float) numbers
            if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
            {
                e.Handled = true;
            }

4. รันโปรแกรมแล้วทดลองป้อนข้อมูลลงในกล่อง TextBox ทั้งที่เป็นตัวเลขและอักขระอื่น ๆ สังเกตุผล


« แก้ไขครั้งสุดท้าย: กันยายน 20, 2018, 01:34:21 PM โดย admin »

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 563
    • ดูรายละเอียด
    • อีเมล์

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 563
    • ดูรายละเอียด
    • อีเมล์