Thứ Năm, 8 tháng 11, 2012

Chỉ cho phép người dùng nhập số vào textbox

Trong rất nhiều ứng dụng, ta thường thấy có một vài textbox chỉ cho phép nhập số hoặc một vài ký tự đặc biệt nào đó. Mục đích là để đảm bảo dữ liệu mà người dùng nhập vào luôn hợp lệ. Chỉ với thủ thuật nhỏ dưới đây, bạn sẽ giải quyết vấn đề trên một cách dễ dàng.

Để ràng buộc dữ liệu nhập vào của textbox, ta sẽ xử lý sự kiện KeyPress của nó. Sự kiện này có ở hầu hết các control của C# và nó xảy ra khi người dùng nhấn một phím bất kỳ trên bàn phím.

Code

View source
  1. private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
  2. {
  3.     string ValidChar = "0123456789" + Convert.ToChar(8).ToString();
  4.     if (!ValidChar.Contains(e.KeyChar))
  5.         e.Handled = true;
  6. }

Hoặc

  1. private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
  2. {
  3.     if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
                    e.Handled = true;
  4. }

Đầu tiên ta sẽ tạo một chuỗi chứa những ký tự được phép nhập. Tại sao lại có dòng + Convert.ToChar(8).ToString() ? Bởi vì khi người dùng nhập dữ liệu, họ sẽ cần đến phím backspace để xóa các ký tự. Do đó ta phải đưa phím backspace (có mã ASCII là 8) vào dãy các ký tự hợp lệ ở trên.

Dòng e.Handled = true; nghĩa là ta bỏ qua việc xử lý dữ liệu nhập vào của C#.

Như vậy, vấn đề đã được giải quyết chỉ với vài dòng code. Thật đơn giản phải không.

Chúc các bạn thành công.

#End


Không có nhận xét nào:

Liên kết quảng cáo :