2012-08-04 17 views
0

目前重點檢測輸入,我有這樣的:即使它不是按

if ((input.Text.ToUpper() == "FURNACE" || input.Text.ToUpper() == "COAL") && count == 3) 
       { 
        end3(); 
       } 
       else 
       { 
        MessageBox.Show("Unknown key"); 
       } 

不過,如果我進入爐,煤或其他沒有任何問題,它仍然與「未知鍵」彈出。爲什麼?

這是一個KeyUp事件下,像這樣:

private void input_KeyUp(object sender, KeyEventArgs e) 
    { 
     if (e.KeyData == Keys.Enter) 
     { 
      //The earlier code I showed goes here 
     } 
    } 

計數變化時,如果(input.Text.ToUpper ...)是加入一個一個來算,但它開始於零。

輸入是一個文本框。

+0

'input'的類型是什麼?例如它是一個文本框? – 2012-08-04 22:22:30

+1

它(計數)會有所不同,其中一個if(input.Text.ToUpper ...)將加1以進行計數,但它從零開始。 – Frank 2012-08-04 22:22:45

+0

是的,這是一個文本框。我將兩個問題都添加到了答案中,這可能會幫助其他人。 – Frank 2012-08-04 22:23:20

回答

0

我認爲您在輸入if之後就錯過了e.SuppressKeyPress = true;,所以當您按下回車鍵時,它不會在文本中顯示爲字符。

private void input_KeyUp(object sender, KeyEventArgs e) 
{ 
    if (e.KeyData == Keys.Enter) 
    { 
     e.SuppressKeyPress = true; 
     if ((input.Text.ToUpper() == "FURNACE" || input.Text.ToUpper() == "COAL") && count == 3) 
     { 
      end3(); 
     } 
     else 
     { 
      MessageBox.Show("Unknown key"); 
     } 
    } 
} 
+0

我在哪裏放? – Frank 2012-08-04 22:39:59

+0

我編輯了答案。如果這不起作用,但關鍵在於。我通常在做完鑰匙時做到這一點,而不是關鍵。 – YAYAYAYA 2012-08-05 08:51:22