2012-11-22 73 views
2

我有一個表單,我需要驗證文本框,如名字,中間名,姓,emailId,日期,移動號碼。當用戶開始在文本框中輸入時應該進行驗證。如果用戶輸入數字代替文本和文本以代替數字,errorprovider應該在文本框下顯示消息。我已經瞭解了隱式驗證和顯式驗證,但是我覺得使用隱式驗證更好,因爲它僅僅因爲它的時間錯誤提供程序,當用戶將焦點放在文本框上或者如果他轉移到另一個文本框時。我用一個明確的驗證代碼提出了這樣的問題,但沒有人回答我。所以我很簡單得到幫助。在發佈這個問題之前,不要以爲我沒有做足夠的研究。如何驗證C#.net winforms中的文本框

回答

3

如果您有一個非常具體的驗證要做,Mar c的回答是正確的。但是,如果您只確保「輸入數字而不是字母」或「輸入字母而不是數字」的話,MaskedTextBox會比您做得更好(用戶無法回答不正確的數據,而且您仍然可以發出警告他們通過處理MaskInputRejected事件)

http://msdn.microsoft.com/en-us/library/kkx4h3az(v=vs.100).aspx

+0

好的建議伴侶。 MSDN鏈接是值得的。 – Sri

3

你應該看看你的文本框中的TextChanged事件。

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged.aspx

如果文本屬性是通過或者是 編程修改或用戶交互改變引發此事件。

我會做這樣的事情

private void TextBoxExample_TextChanged(object sender, EventArgs e) 
{ 
    TextBox box = sender as TextBox; 

    if (box.Text.Contains("Example")) 
    { 
     LabelError.Text = "Error"; 
    } 
    else 
    { 
     LabelError.Text = string.Empty; 
    } 
} 

希望它能幫助:)

+0

我需要單獨實現這個每個文本框。 – Sri

+0

不,您可以將所有TextBox TextChanged事件附加到此方法。 – MarcD

3

您還可以使用keyPressEvent避免在文本框 的輸入數值也不會允許數值字符在文本框中

private void textboxName_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     //not allowing the non character values 
     if (!char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar) && !(e.KeyChar == (char)Keys.Back) && !(e.KeyChar == (char)Keys.Left) && !(e.KeyChar == (char)Keys.Right) && !(e.KeyChar == (char)Keys.Space) && !char.IsPunctuation(e.KeyChar)) 
     { 
      e.Handled = true; 
     } 
    } 
+0

不錯,我會試一試。謝謝 – Sri