Làm cách nào để tạo một số TextBox
chỉ chấp nhận các ký tự chữ cái có dấu cách?Làm thế nào để làm cho một TextBox chỉ chấp nhận các ký tự chữ cái?
Trả lời
Bạn có thể sử dụng đoạn mã sau:
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "^[a-zA-Z ]"))
{
MessageBox.Show("This textbox accepts only alphabetical characters");
textBox1.Text.Remove(textBox1.Text.Length - 1);
}
}
Bạn có thể thử bằng cách xử lý sự kiện KeyPress
cho textbox
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back);
}
Ngoài ra nói cho phép xóa lùi trong trường hợp bạn muốn loại bỏ một số văn bản, điều này nên hoạt động hoàn toàn tốt cho bạn
EDIT
Đoạn mã trên sẽ không hoạt động để dán vào trường mà tôi tin rằng bạn sẽ phải sử dụng sự kiện TextChanged
nhưng sau đó sẽ phức tạp hơn một chút khi bạn phải xóa char không chính xác hoặc tô sáng nó và đặt con trỏ để người dùng thực hiện chỉnh sửa Hoặc có thể bạn có thể xác thực khi người dùng đã nhập toàn bộ văn bản và các tab khỏi điều khiển.
Công cụ này hoạt động rất tốt nhưng nó sẽ không cho phép tôi dán văn bản phải qua xác thực. –
Cách đơn giản nhất là để xử lý các TextChangedEvent và kiểm tra những gì đang được đánh máy:
string oldText = string.Empty;
private void textBox2_TextChanged(object sender, EventArgs e)
{
if (textBox2.Text.All(chr => char.IsLetter(chr)))
{
oldText = textBox2.Text;
textBox2.Text = oldText;
textBox2.BackColor = System.Drawing.Color.White;
textBox2.ForeColor = System.Drawing.Color.Black;
}
else
{
textBox2.Text = oldText;
textBox2.BackColor = System.Drawing.Color.Red;
textBox2.ForeColor = System.Drawing.Color.White;
}
textBox2.SelectionStart = textBox2.Text.Length;
}
Đây là một phiên bản regex-miễn phí nếu bạn thích. Nó sẽ làm cho hộp văn bản nhấp nháy vào đầu vào kém. Xin lưu ý rằng nó cũng có vẻ hỗ trợ hoạt động dán.
thưa bạn đó là tuyệt vời nhưng bạn có thể cho tôi biết trong deatail cách đánh máy được ngừng automaticallu nó chỉ là vòng lặp nếu kiểm tra nhưng làm thế nào gõ được dừng lại? và về biểu thức lambda? textBox1.Text.All (chr => char.IsLetter (chr)) cái này là gì. có nghĩa là cách thức hoạt động này vui lòng nếu bạn có thể –
Hey! Vâng những gì nó làm nó để lưu trữ các văn bản trước đó từ đầu vào trong biến oldText. Sau đó, thay đổi tiếp theo của hộp văn bản nó sẽ kiểm tra ký tự theo ký tự và nếu ký tự không phải là một chữ cái - nó sẽ trả về văn bản cũ. Nếu đúng - nó sẽ đặt văn bản cũ giống với kiểu nhập văn bản hiện tại (mới). Vì vậy, nếu bạn có một đầu vào hợp lệ - oldText có được giá trị TextBox, nếu bạn có đầu ra không hợp lệ - nó hoạt động theo cách khác xung quanh. Ngoài ra một số phong cách GUi giúp hình dung nếu có một lỗi hay không. Hi vọng điêu nay co ich. –
Vì vậy, textBox2.Text.All() lambda sẽ trả về false nếu ngay cả một ký tự không phải là một chữ cái. Nếu tất cả đều là chữ cái - nó sẽ trả về giá trị true. Từ đó về giải thích ở trên diễn ra. –
if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "^[a-zA-Z]+$"))
{
}
else
{
textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
MessageBox.Show("Enter only Alphabets");
}
Hãy Hãy thử điều này
viết mã trong Text_KeyPress tổ chức sự kiện như
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsLetter(e.KeyChar))
{
e.Handled = true;
}
}
private void textbox1_KeyDown_1(object sender, KeyEventArgs e)
{
if (e.Key >= Key.A && e.Key <= Key.Z)
{
}
else
{
e.Handled = true;
}
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar >= '0' && e.KeyChar <= '9')
e.Handled = true;
else
e.Handled = false;
}
Vui lòng bao gồm giải thích lý do tại sao câu trả lời của bạn sẽ hoạt động và cách kết nối hộp văn bản với sự kiện của bạn. – Vulcronos
Cái này đang làm việc hoàn toàn tốt ...
private void manufacturerOrSupplierTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsControl(e.KeyChar) || char.IsLetter(e.KeyChar))
{
return;
}
e.Handled = true;
}
Cảm ơn bạn đã kiểm tra IsControl. –
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsLetter(e.KeyChar) &&
(e.KeyChar !='.'))
{
e.Handled = true;
MessageBox.Show("Only Alphabets");
}
}
Giải thích tốt hơn cho giải pháp của bạn –
Hãy thử này
private void tbCustomerName_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back||e.KeyChar==(char)Keys.Space);
}
Nó cho phép Spaces Trắng Quá
bạn có thể thử đoạn mã sau cảnh báo rằng tại thời điểm then chốt buổi họp báo
private void tbOwnerName_KeyPress(object sender, KeyPressEventArgs e)
{
//===================to accept only charactrs & space/backspace=============================================
if (e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Space))
{
e.Handled = true;
base.OnKeyPress(e);
MessageBox.Show("enter characters only");
}
Đây là giải pháp của tôi và nó hoạt động theo kế hoạch:
string errmsg = "ERROR : Wrong input";
ErrorLbl.Text = errmsg;
if (e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Space))
{
ErrorLbl.Text = "ERROR : Wrong input";
}
else ErrorLbl.Text = string.Empty;
if (ErrorLbl.Text == errmsg)
{
Nametxt.Text = string.Empty;
}
Thử mã sau trong sự kiện KeyPress của hộp văn bản
if (char.IsLetter(e.KeyChar) == false &
Convert.ToString(e.KeyChar) != Microsoft.VisualBasic.Constants.vbBack)
e.Handled = true
- 1. jQuery xác thực plugin: chỉ chấp nhận các chữ cái?
- 2. Plugin xác thực jQuery: chỉ chấp nhận các ký tự chữ cái?
- 3. có một url chấp nhận tất cả các ký tự
- 4. Làm thế nào để xác định liệu một ký tự là một chữ cái trong Java?
- 5. Biểu thức chính quy - bắt đầu và kết thúc bằng một chữ cái, chỉ chấp nhận chữ cái, số và _
- 6. Regex chỉ cho phép các chữ cái và một số ký tự
- 7. Ký hiệu UTF8 cho các chữ cái chỉ số
- 8. Chỉ chấp nhận các ký tự bị giới hạn khi sử dụng chấp nhận trong oracle
- 9. Ký tự đại diện sql chỉ có các ký tự bảng chữ cái
- 10. Làm thế nào để bạn loại bỏ tất cả các ký tự chữ cái từ một chuỗi?
- 11. Làm thế nào để kiểm tra trong Javascript rằng một chuỗi chứa các ký tự chữ cái
- 12. Làm thế nào tôi có thể làm cho một trường mẫu Django chỉ chứa ký tự chữ và
- 13. Làm thế nào để các emacs chấp nhận mã hóa UTF-8 (chữ hoa)?
- 14. Làm thế nào để làm cho một hộp văn bản chỉ chấp nhận chữ số và định dạng số bằng dấu phẩy?
- 15. làm thế nào để làm cho tất cả các chữ cái trong thủ đô chuỗi?
- 16. Danh sách các ký tự chữ cái Unicode
- 17. Hạn chế các ký tự trong một TextBox
- 18. Làm cách nào để bật chứng chỉ tự ký cho các ổ cắm SSL trên Android?
- 19. Chấp nhận các ký tự tên quốc tế trong RegEx
- 20. Làm cách nào để sắp xếp các ký tự của chuỗi theo thứ tự bảng chữ cái?
- 21. Các tùy chọn để nhận \ mathcal làm việc cho các chữ cái viết thường là gì?
- 22. Làm thế nào để sắp xếp một NSArray theo thứ tự bảng chữ cái?
- 23. Làm thế nào để xác định xem một khóa là một chữ cái hoặc số?
- 24. Làm thế nào để tách một chuỗi giữa các chữ cái và chữ số (hoặc giữa các chữ số và chữ cái)?
- 25. Làm thế nào để kiểm tra các ký tự chữ và
- 26. Làm thế nào để đặt một ký tự Unicode bổ sung trong một chuỗi chữ?
- 27. cách chấp nhận chứng chỉ tự ký cho kết nối JNDI/LDAP?
- 28. Xác thực mẫu để chỉ cho phép các ký tự bảng chữ cái trong hộp văn bản
- 29. Chuyển đổi số thành chữ cái vượt quá 26 ký tự bảng chữ cái
- 30. Làm thế nào để chỉ chấp nhận các bản vá được chọn với git svn?
Dường như không hoạt động tốt. Nếu tôi thêm một chữ cái và sau đó một số/khoảng trắng/bất cứ điều gì nó sẽ cho tôi đi khi tôi đáp ứng regex (bắt đầu bằng chữ cái). –
@favoretti bây giờ mã hoạt động tốt, nhưng có một ngoại lệ xảy ra nếu tôi gõ số nguyên ký tự đầu tiên và khi tôi nhấn phím xóa lùi để loại bỏ điều đó. Mã hoạt động tốt cho số, nó bật thông báo khi tôi nhập số.nhưng khi tôi đã cố gắng để xóa với backspace nó mang lại cho tôi lỗi StartIndex không thể nhỏ hơn 0, tên tham số startIndex. Làm thế nào để xử lý này? – chathwind