2012-01-08 279 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