如何讓TextBox
只接受帶空格的字母字符?如何讓文本框只接受字母字符?
回答
您可以使用下面的代碼片段:
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);
}
}
您可以通過處理KeyPress
事件對TextBox
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back);
}
另外說允許退格鍵的情況下,要刪除一些文本嘗試,這應該完全適合你的工作
編輯
上述代碼不適用於粘貼在我認爲必須使用TextChanged
事件的字段中,但是如果您必須刪除不正確的字符或突出顯示它並將光標置於光標處以供用戶進行更正或者,也許您可以在用戶輸入完整文本並關閉控件後進行驗證。
這一個很好,但它不會允許我粘貼應該通過驗證的文本。 –
最簡單的方法是處理TextChangedEvent和檢查什麼被鍵入:
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;
}
這是一個免費的正則表達式版本,如果你喜歡。它會使文本框在輸入錯誤時閃爍。 請注意,它似乎也支持粘貼操作。
先生,這是偉大的,但你可以告訴我deatail如何停止鍵入automaticallu它只是如果循環檢查,但如何停止鍵入? 和約lambda表達式? textBox1.Text.All(chr => char.IsLetter(chr))這是什麼。意思是如何工作,如果你可以 –
嘿!那麼它做了什麼,以便將輸入中的前一個文本存儲在oldText變量中。然後在文本框的後續更改中逐字符檢查,如果該字符不是字母,則返回舊文本。如果是 - 將舊文本設置爲與當前(新)文本框輸入相同。 所以如果你有一個有效的輸入 - oldText得到的TextBox值,如果你有無效的輸出 - 它的工作方式相反。還有一些GUI造型有助於可視化是否有錯誤。希望這可以幫助。 –
因此,即使一個字符不是字母,textBox2.Text.All()lambda也會返回false。如果全部都是字母 - 它會返回true。從此開始進行上述解釋。 –
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");
}
請嘗試在Text_KeyPress事件這個
編寫代碼爲
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;
}
請包括解釋爲什麼您的答案將工作以及如何將文本框連接到您的活動。 – Vulcronos
這一個是工作絕對沒問題......
private void manufacturerOrSupplierTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsControl(e.KeyChar) || char.IsLetter(e.KeyChar))
{
return;
}
e.Handled = true;
}
感謝您的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");
}
}
更好地解釋你的解決方案 –
嘗試這個
private void tbCustomerName_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back||e.KeyChar==(char)Keys.Space);
}
它允許白空間太
你可以在按鍵下壓事件
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");
}
這裏的時間嘗試下面的代碼,警報我的解決方案,它的工作原理按計劃:
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;
}
請在KeyPress事件的文本框中嘗試以下代碼
if (char.IsLetter(e.KeyChar) == false &
Convert.ToString(e.KeyChar) != Microsoft.VisualBasic.Constants.vbBack)
e.Handled = true
- 1. 如何使文本框只接受字母字符
- 2. 如何讓文本框只接受數字字符?
- 3. 如何創建只接受數字的文本框和只接受WPF中的字母的文本框?
- 4. 如何使文本框數組只接受特定的字母?
- 5. Grails:我如何讓g:textfield只接受數字或只接受字母?
- 6. 只接受在文本框字母和數字使用javascript
- 7. VB.NET - 如何讓文本框只接受每個按鍵一個字符?
- 8. 如何強制文本框只接受字符串
- 9. 讓UITextField只接受Swift中的小字母字母?
- 10. jQuery驗證只接受文本框中的三個字母
- 11. 只接受字母使用jquery掩碼的文本框
- 12. 屏蔽文本框只接受字母asp.net
- 13. 只接受文本框中的數字
- 14. 文本框PreviewTextInput - 只接受數字和「:」
- 15. 如何讓textfield只接受LWUIT中的字母?
- 16. 如何讓文本框只顯示大寫字母?
- 17. 節點如何讓套接字只接受本地連接?
- 18. 文本框只有字母,數字和 -
- 19. 如何限制一個文本框只接受使用JavaScript的10個字母字符?
- 20. JQuery MVC - 接受字母和數字的蒙面文本框
- 21. 當第一個字母是字母數字時接受文本框的值
- 22. asp文本框只接受字符在IE8
- 23. 獲取文本框只接受vb.net中的字符
- 24. 接受在文本框中只有字符輸入
- 25. 如何使文本框只接受基於條件的數字?
- 26. 如何創建只接受字母數字字符的正則表達式?
- 27. 如何讓文本框只接受有效的電子郵件?
- 28. 正則表達式只接受幾個字母字符
- 29. jQuery驗證插件:只接受字母字符?
- 30. 如何確保文本框只接受整數(而不是字符串)
似乎不能很好地工作。如果我添加一個字母,然後添加一個數字/空格/不管它會讓我走,因爲我滿足正則表達式(以字母開頭)。 –
@favoretti現在的代碼工作正常,但是如果我鍵入第一個字符的整數,並且當我按退格鍵刪除時,會發生異常。代碼適用於數字,它會在我鍵入數字時彈出消息。但是當我試圖用退格清除時,它給了我錯誤StartIndex不能小於零,參數名稱startIndex。如何處理這個? – chathwind