2011-05-23 31 views
2
private void idTextEdit_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Return) 
     { 
      e.Handled = true; 
      SearchButtonClick(sender, EventArgs.Empty); 
     } 
    } 

我有一個文本框,在此代碼檢查火的,除了由於某種原因不執行任何輸入/返回鍵的每一個按鍵。在文本框上激活的光標消失了,所以我認爲它在keydown事件可以觸發之前會改變焦點,但我不確定。我怎樣才能得到返回鍵停止取消選擇框並註冊爲按鍵。也沒有其他代碼可以設置輸入鍵具有不同的功能,它是一個非常簡單的文本框屏幕進行測試。KEYDOWN不拾取「返回」鍵C#

+0

我剛試過這個,我的消息框顯示。 – ChrisF 2011-05-23 21:19:33

+0

只需在這裏檢查:您是否設置了使用此代碼的事件處理程序?另外,你是否試過在你的'if'條件下放置一個斷點,然後按Enter/Return鍵來查看實際值?有時你會得到一組值。如果是這樣的話,你會想要使用位邏輯:'if((e.KeyCode&Keys.Return)== Keys.Return)'... – jp2code 2011-05-23 21:32:18

回答

6

如果你有一個AcceptButton設置,那麼你會得到你所看到的行爲。

我用我的示例表單試過了你的代碼,它按預期工作。

然後,我將AcceptButton設置爲其中一個按鈕,文本框停止響應Enter。在文本框上設置AcceptsReturn不起作用。

1

設置AcceptsEnter屬性true

+0

我剛剛嘗試過這一點,它與'AcceptsReturn '設置爲false。 – ChrisF 2011-05-23 21:17:51

+0

@ChrisF:如果表單上有一個默認按鈕,可能會有所不同。 – 2011-05-23 21:19:58

+0

@Chris,我相信如果有一個AcceptButton集合,它的行爲會有所不同。 – 2011-05-23 21:21:21