2011-04-10 73 views
0

我有一個按鈕 - button1click和文本框,其中當我鍵入的東西,然後按回車鍵,我想從button1click運行代碼。C#執行代碼從另一個按鈕

如何在不將整個代碼從button1單擊到EnterPressed的情況下執行此操作?

private void button1click(object sender, EventArgs e) 
{ 
    //Some Code 
} 


void EnterPressed(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     Execute code from button1 
    } 
} 

也許這樣的事?但我發現了錯誤...

void EnterPressed(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     button1click(object sender, EventArgs e) 
    } 
} 
+0

想知道,設置窗體的** AcceptButton **屬性會導致相同的行爲。 – V4Vendetta 2011-04-11 08:11:43

回答

6

只要有的button1_Click調用一個方法,然後你可以調用從任何你想去的那個同樣的方法。所以在你的例子中:

private void button1click(object sender, EventArgs e) 
{ 
     Foo(); 
} 


void EnterPressed(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     Foo(); 
    } 
} 

void Foo() 
{ 
    //Do Something 
} 

我個人不會手動調用另一個控件的事件。

+0

你的最後一行是FUD太多了,這樣做沒有錯。 – 2011-04-10 12:25:40

+0

Tnx :)你說得對,正在調用另一個控件的事件。 – Elfoc 2011-04-10 12:47:13

+0

@Hans,我想個人喜好。出於可讀性的目的,在這種情況下,我更喜歡實際調用方法而不是按鈕單擊事件。 – 2011-04-10 13:21:28

1
void EnterPressed(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     button1click(sender, EventArgs.Empty); 
    } 
} 
+0

@abatishchev:我不知道什麼是錯的,但是謝謝你使它正確:) – Marco 2011-04-10 11:27:14

相關問題