2010-02-14 32 views
6

Làm cách nào tôi có thể đặt mặt nạ trên hộp văn bản mẫu giành chiến thắng để nó chỉ cho phép số? Và làm thế nào nó hoạt động cho dữ liệu mặt nạ khác, điện thoại zip, vvMặt nạ hộp văn bản của Win Forms

Tôi đang sử dụng Visual Studio 2008 C#

Cảm ơn.

Trả lời

3

Bạn có muốn ngăn chặn đầu vào mà không được phép hoặc xác nhận đầu vào trước khi nó có thể tiếp tục?

Trước đây có thể gây nhầm lẫn cho người dùng khi họ nhấn phím nhưng không có gì xảy ra. Nó thường là tốt hơn để hiển thị các phím bấm của họ nhưng hiển thị cảnh báo rằng đầu vào hiện không hợp lệ. Nó có lẽ cũng khá phức tạp để thiết lập cho mặt nạ một biểu thức chính quy địa chỉ email ví dụ.

Nhìn vào ErrorProvider để cho phép người dùng nhập nội dung họ muốn nhưng hiển thị cảnh báo khi họ nhập.

Đối với đề xuất đầu tiên của bạn về hộp văn bản chỉ cho phép số, bạn cũng có thể muốn xem xét một NumericUpDown.

+1

Một giao diện người dùng được thiết kế đúng cách nên để lại không có sự nhầm lẫn là tại sao văn bản của họ đã không được gõ. Tôi đang trong nhóm phát triển thực hiện phần mềm Thanh toán Y tế cho những người chưa từng sử dụng máy tính trước đây và thậm chí họ còn nhận được lý do tại sao các chữ cái sẽ không tham gia vào trường số SSN hoặc số ID Bảo hiểm. –

+0

Chủ yếu tôi sẽ sử dụng xác nhận đầu vào, phòng ngừa đôi khi trong các trường hợp như SSN và tìm kiếm theo id, v.v ... – eomeroff

0

Sử dụng hộp văn bản Mặt nạ và gán MasktextboxId.Mask.

Nếu u muốn sử dụng textbox sau đó bạn phải viết Regular Expression cho nó

0

kiểm soát sự kiện nhấn phím của người dùng để che đầu vào bằng cách không cho phép bất kỳ ký tự không mong muốn.

Để cho phép chỉ số với số thập phân:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     // allows 0-9, backspace, and decimal 
     if (((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 46)) 
     { 
      e.Handled = true; 
      return; 
     } 

     // checks to make sure only 1 decimal is allowed 
     if (e.KeyChar == 46) 
     { 
      if ((sender as TextBox).Text.IndexOf(e.KeyChar) != -1) 
       e.Handled = true; 
     } 
    } 

Để cho phép số điện thoại duy nhất giá trị:

private void txtPhone_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar >= '0' && e.KeyChar <= '9') return; 
    if (e.KeyChar == '+' || e.KeyChar == '-') return; 
    if (e.KeyChar == 8) return; 
    e.Handled = true; 

} 
Các vấn đề liên quan