สร้าง TextBox ที่เราต้องการจะให้ใส่ค่าได้เฉพาะตัวเลขขึ้นมา
Ex. ตั้งชื่อ txtEstimateCost
1. เลือก Even KeyPress แล้วเพิ่มโค้ดลงไป ดังตัวอย่าง
private void txtEstimateCost_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar.ToString() != "." && e.KeyChar.ToString() != "-") { //if (!(char.IsDigit(e.KeyChar)) || char.IsControl(e.KeyChar)) //{ // e.KeyChar = Convert.ToChar(Keys.None); //} if (System.Char.IsNumber(e.KeyChar) == false && e.KeyChar != 8) e.Handled = true; } } } // if (System.Char.IsNumber(e.KeyChar) == false && e.KeyChar != 22) 22 คือ Ctrl+v
2. เลือก Even KeyDown แล้วเพิ่มโค้ดลงไป ดังตัวอย่าง
private void txtEstimateCost_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab) { this.txtEstimateCost.Focus(); } }
หรือจะสร้างเป็นฟังก์ชันเรียกใช้เอาก็ได้ ดังนี้
private void keyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar.ToString() != "." && e.KeyChar.ToString() != "-") { if (System.Char.IsNumber(e.KeyChar) == false && e.KeyChar != 8) e.Handled = true; } } private void keyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab) { } }
เรียกใช้ฟังก์ชันดังนี้
private void txtEstimateCost_KeyDown(object sender, KeyEventArgs e)
{ keyDown(sender, e); } private void txtEstimateCost_KeyPress(object sender, KeyPressEventArgs e)
{ keyPress(sender,e); }