2012-01-08 293 views
0
private void btnBrowserGo_Click(object sender, EventArgs e) 
{ 
    browser.Navigate(txtBrowserURL.Text); 
} 

上面的代碼將瀏覽器指向文本框中的URL地址。如果用戶在輸入URL時按下以太網鍵,我也希望發生這種事件。我有這樣的代碼(如下圖),但不知道我怎麼會叫上面的代碼c#按鍵觸發按鈕單擊

private void txtBrowserURL_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)13) 
    { 

    } 
} 

回答

1

嘗試

btnBrowserGo_Click(null, null); 

,因爲你不使用最後的兩個參數。

但是,將「邏輯」提取到其他方法中並從BOTH事件處理程序中使用該方法可能會很好。

這裏你的邏輯是一個內膽,但也可能是更多...

+0

作品像對待,乾杯 – Dan1676 2012-01-08 15:23:48

0
private void txtBrowserURL_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)13) 
    { 
     btnBrowserGo_Click(btnBrowserGo,EventArgs.Empty); 
    } 
} 
5

你可以只直接調用使用事件:

btnBrowserGo_Click(null, null); 

然而,這將是更好的,如果你沒有在事件本身中處理導航,只是調用方法。那樣的話,這個方法可以從課堂的其他地方直接調用。如果你在方法中有更多的邏輯,這是特別有用的。

void NavigateBrowser() 
{ 
    browser.Navigate(txtBrowserURL.Text); 
} 

然後,您可以從任何事件中調用該方法。

private void txtBrowserURL_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)13) 
    { 
     NavigateBrowser(); 
    } 
} 

private void btnBrowserGo_Click(object sender, EventArgs e) 
{ 
    NavigateBrowser(); 
} 
+2

我可能甚至把它一步,有一個函數NavigateBrowser(字符串URL)。這樣你的導航功能就不會受限於文本框中的任何內容。 – 2012-01-08 15:31:38

+0

我正在考慮這樣做,但不想將OP與進一步的複雜性混淆。但是,我同意,添加一個參數肯定會成爲一種方法。 – keyboardP 2012-01-08 15:34:27