2011-05-23 35 views
3

我有一個標準的文本框,我想在按鍵上執行一個操作。我目前有這樣的代碼:C#文本框按鍵控制幫助

private void idTextEdit_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) 
     { 
      if (e.KeyChar == (char)Keys.Enter/Return) 
     { 
      e.Handled = true; 
      SearchButtonClick(sender, EventArgs.Empty); 
     } 
    } 

問題是,我已經嘗試了Enter和Return在那裏,這就是原因。它只會觸發檢查不像移位,控制等的普通按鍵。我怎樣設計這個按鍵,以便它以相同的方式拾取和使用輸入/回車鍵?

+1

你用某種方法把'Keys.Enter'分開了嗎? – jp2code 2011-05-23 19:58:30

+0

@ jp2code:下面的人得到了這個,謝謝檢查。我不是很清楚這意味着什麼,我的意思是在那裏表示我已經嘗試了兩種方式,讓我感到困惑,而不是最好的方法,但我認爲基本點會得到解決。 – 2011-05-23 20:01:24

+1

是的,他們在我收到我的所有文字之前發佈了他們的答案,並且說的都是同樣的東西。 ...所以,我通過添加評論來做出貢獻,以防萬一它不是你想要的。雅永遠不會知道! :) – jp2code 2011-05-23 20:03:17

回答

6

您應該使用KeyDown事件,而不是:

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Return) 
    { 
     //... 
    } 
} 

如果出於某種原因KeyPress,您可以使用(char)13'\r'爲您的支票,但我懷疑這將在一個運行良好非Windows操作系統。

if (e.KeyChar == '\r') 

你不能只投Keys.Returnchar,因爲它是一個位標誌枚舉,並不會只按住相應的ASCII碼。

+0

啊,很多我以前不知道的東西,仍然每天都在學習。我切換到KeyDown,它只是做我需要的。值得注意的是,KeyPress事件根本不會觸發非字符鍵,所以如果必須將它與(char)13或'\ r'結合使用,它甚至不會觸發檢查。仍然有一種方式去學習過程,但它的移動,感謝您的幫助和答案。 – 2011-05-23 20:05:31

0

改爲使用KeyDown事件。