2014-11-02 159 views
1

我試圖阻止用戶輸入文本字段中的空格鍵。我有這個代碼。防止特殊字符輸入c#

private void FirstNameBox_KeyDown(object sender, KeyEventArgs e) 
     { 
      //////////MessageBox.Show(e.KeyValue.ToString()); 
      //Now check to see if the key pressed is a space 
      if ((e.KeyValue == 32)) 
      { 
       MessageBox.Show("Please Enter only first name.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); 
       //Stop the key registering 
       e.Handled = true; 
       e.SuppressKeyPress = true; 
      } 
      else 
      { 
       //allow enter 
      } 
     } 

其中32是空格按鈕的關鍵值。但現在對我來說這並不適用。我以前在這個代碼中使用了完美的數字條目......嘗試它的空間,但不工作。有任何想法嗎??

+0

你有更大的問題,其實。那些擁有多個名字或多部分名字的人(如Mary Anne)呢?此外,還有更多的空格而不是「Space」鍵 - 「Tab」呢?或者_represent_(看起來像)空格但不是傳統空格(可能在非ASCII集中找到)的字符? – 2014-11-02 08:09:28

+0

我有三個輸入字段..名字,中間名和姓....他們可以在中間的名字字段中輸入其他名稱但第一和最後一個名字,我只希望他們輸入一個字.. – LeCdr 2014-11-02 08:30:46

+0

哎喲。根據您使用的其他內容,您可能遇到法律文件等問題(其中,他們報告的名字與您報告的名字不同,因爲他們通常不使用全名) 。這也可以讓你的顧客惱火。那麼像德國人,你可能會有什麼特拉普或什麼的東西呢?有些文化沒有「最後」(或家庭)的名字。你在做什麼,你要求單名?像這樣的問題是爲什麼有些人建議只使用一個「名稱」字段。 – 2014-11-02 08:52:16

回答

1
if (e.KeyCode == Keys.Space) 
{ 
    // Do something here. 
} 
0

很難說,因爲你沒有給予太多的細節。例如:WPF/Winforms?哪個版本?爲什麼?你有什麼限制?等等......

在任何情況下,你不應該手動在任何情況下,如果你使用WPF/MVVM這樣做......,一個好方法是使用驗證這一點。

針對上述情況,你可以看看驗證一節中的:The big mvvm template