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

上記のコードは、ブラウザをテキストボックスのURLアドレスに誘導します。 URLを入力するときにユーザーがエーテルキーを押すと、このイベントも発生します。私はこのコードを持っている(下記)が、私はあなたが最後の2つのパラメータを使用していないので、c#キー押しトリガーボタンクリック

btnBrowserGo_Click(null, null); 

を試してみてください

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

    } 
} 

答えて

1

上記のコードを呼び出す方法を知りません。

ただし、ロジックを他のメソッドに抽出し、そのメソッドを両方のイベントハンドラから使用するとよい場合があります。

ここにあなたのロジックはワンライナーであるが、それはもっとかもしれない...

+0

作品、乾杯 – Dan1676

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を)持っていると思います。そうすれば、あなたのナビゲーション機能はテキストボックスにあるものに縛られません。 –

+0

私はこれをやっていると思っていましたが、OPをもっと複雑に混乱させたくありませんでした。しかし、私は同意する、パラメータを追加することは間違いなく行く方法だろう。 – keyboardP

関連する問題