2011-05-13 74 views
1

如何驗證文本框,而不允許Windows窗體應用程序中使用C#.net 在我的項目中.i我可以驗證文本框,不允許空格.... 在這兩件事情。 ............ 1.僅限空格不允許 2.輸入一個或兩個字符後文本框接受空格...........在Windows窗體應用程序驗證文本框

+0

參考http://stackoverflow.com/questions/2703461/regular-expression-alphanumerics-with-space http://stackoverflow.com/questions/924287/regular -expressio n-for-alphnumeric-and-space。你必須修改正則表達式來滿足你的要求。 – 2011-05-13 04:49:41

+0

你的意思是說用戶不能從'space'開始,但可以使用後者嗎? – V4Vendetta 2011-05-13 04:54:19

+0

嗨,對不起,我沒有看到你的問題,我認爲它不是一個好的方法來回答兩次在stackoverflow。所以我想建議你在http:// stackoverflow之前幾分鐘回答下面的鏈接。com/questions/5987924/validating-textbox-in-windows-form-applications/5988074#5988074 – SharpUrBrain 2011-05-13 06:53:35

回答

1

您可以限制用戶通過處理KeyPress事件進入TextBox中的空間

void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = (e.KeyChar == (char)Keys.Space); 
} 

編輯

在箱體空間正在進入一個或兩個字符之後允許的,那麼你應該使用

textbox1.Text.TrimStart()

+0

我認爲空格不允許只在文本的開頭,但可以稍後輸入。 – 2011-05-13 04:51:54

+0

如果問題只是我們在開始時不允許空格,那麼執行TrimStart()將會起作用。然而,OP表示他們希望在留出空間之前擁有一個或兩個字符。如果它是一個字符,你很好。但是,如果是兩個,這種方法將不起作用。 – IAmTimCorey 2011-05-13 04:59:42

+0

@BiggsTRC這將如何改變,'TrimStart'從一開始就刪除了一個或兩個字符之後的空格/空格不會成爲問題。 – V4Vendetta 2011-05-13 05:03:08

0

這取決於你所說的「驗證」是什麼。 Winforms具有在您離開控件時觸發的ValidatingValidate事件。你可以點擊這些,然後驗證你的文本框。但是,如果您想在輸入時進行驗證,則您希望使用Key_Press事件來檢查每次按下某個鍵以確保該框中的信息仍然有效。

這裏是一個驗證SO文章:

WinForm UI Validation

在有這些問題的答案提供一些不同的想法取決於你想要做什麼。無論你決定什麼,一定要確保你正確地檢查領域。例如,如果您使用Key_Press,請不要在允許空格之前統計字段中有多少個字符。如果你這樣做了,用戶可以將光標移動到開始處和按下的空間。這會搞亂你的系統。即使您正在使用Key_Press事件,請務必在驗證時檢查整個字段。您可以像使用RegEx一樣複雜的模式來執行此操作。

0

如果您不希望允許除TextBox中的字母數字字符之外的任何其他字符條目,則可以在TextBox的KeyPress事件中執行此操作。

在KeyPress事件中,您需要檢查輸入的字符是字母還是數字。

Char.IsLetterOrDigit(e.KeyChar)

如果是,則允許按鍵設置

「e.Handled =假」

,否則不允許在按鍵通過設置 「e.Handled = TRUE」

private void txtCardID_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (Char.IsLetterOrDigit(e.KeyChar)  // Allowing only any letter OR Digit 
     || e.KeyChar == '\b')     // Allowing BackSpace character 
     { 
      e.Handled = false; 
     } 
     else 
     { 
      e.Handled = true; 
     } 
    } 
相關問題