2013-11-14 145 views
25

我想通過按輸入執行我的搜索按鈕後面的代碼。我有我的搜索按鈕的接受按鈕屬性。但是,當我將我的按鈕設置爲不可見時,我的搜索不會執行。在文本框中按回車鍵並執行按鈕命令

我希望能夠按在我的文本框中輸入並執行我的按鈕,而其不可見。任何建議都會很棒!下面是我在keydown事件代碼一個嘗試

if (e.KeyCode == Keys.Enter) 
    { 
     buttonSearch_Click((object)sender, (EventArgs)e); 
    } 
+0

請分享您的代碼 – SK2185

+0

你是什麼意思時,是不可見的? – Noctis

+0

以上是我所嘗試過的。當我的按鈕屬性設置爲不可見。 –

回答

41

你可以註冊到文本框的KeyDown-事件,看看如果按下的鍵是輸入然後執行該按鈕的事件處理程序:

private void buttonTest_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("Hello World"); 
} 

private void textBoxTest_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     buttonTest_Click(this, new EventArgs()); 
    } 
} 
+0

工作完美!僅供參考,請確保您的「AcceptButton」設置被設置爲None。我使用這段代碼,而我的AcceptButton被設置爲我的按鈕,它沒有工作。糟糕的工作在我的目的。感謝大家!! –

1

可漢勒你TextBox控制KeyDown事件

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if(e.KeyCode==Keys.Enter) 
    buttonSearch_Click(sender,e); 
} 

它工作的前夕n按鈕Visible屬性設置爲False

6

或者,你可以設置你的窗體的.AcceptButton財產。 Enter將自動創建一個點擊事件。

this.AcceptButton = this.buttonSearch; 
+0

很好的解決方案! :) – PixelZerg

-1
private void textbox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      //cod for run 
     } 
    } 

    private void buttonSearch_Click(object sender, EventArgs e) 
    { 
     textbox1_KeyDown(sender, new KeyEventArgs(Keys.Enter)); 
    } 
1

如果你只是要點擊的時候按下回車怎麼樣這個按鈕?

private void textbox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      buttonSearch.PerformClick(); 
     } 
0

WPF應用此代碼工作完美

private void txt1_KeyDown(object sender, KeyEventArgs e) 
    { 
    if (Keyboard.IsKeyDown(Key.Enter)) 
     { 
       Button_Click(this, new RoutedEventArgs()); 
     } 
    }