2017-06-14 10 views
0

できますか?あなたのコードでsenderを使用する場合は別のイベントで別のプライベートサブを呼び出すことはできますか?

Private Sub inputno_tb_MouseDown(sender As Object, e As MouseEventArgs) 
    'My code 
End Sub 

Private Sub stacker1apcs_tb_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) 
    inputno_tb_MouseDown(sender, MouseEventArgs.Empty) 
End Sub 

、あなたの代わりにstacker1apcs_tbにそれを更新する場合があります、またはあなたが好むものは何でも:例えばのような、

Private Sub inputno_tb_MouseDown(sender As Object, e As MouseEventArgs) 
    'My code 
End Sub 

Private Sub stacker1apcs_tb_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) 
    'Calling Private Sub inputno_tb_MouseDown 
End Sub 
+3

これらは単にプライベートメソッドではなく、イベントハンドラです。両方とも似たようなことをしたいのであれば、そのコードを含む新しいサブを作成し、それを各イベントから呼び出してください。 – Plutonix

+0

これ以上の情報なしでは答えはありません。イベントの出現を呼び出す場合は、他のメソッドと同様に 'Sub'を呼び出すだけです。これにより、読みやすさが向上します。2つのイベントハンドラが処理する3つの '共有'メソッドを呼び出す方がよいでしょうどちらも。 – Mike

答えて

0

そうのように、行うことが確かに可能です。

+0

* "あなたのコードが送信者またはeオブジェクトを使用しない限り、引数としてNothingを送信することができます。" *かなり重要な(危険な)仮定。この場合、送信者が 'stacker1apcs_tb'であるように見えるので、なぜそれを渡さないのですか?そして、イベント引数は 'Nothing'ではなく' EventArgs.Empty'でなければなりません。 –

+0

危険ですか?彼がそれを使用していないことを知っていれば、心配することはありません。これは、外部コードによって処理されているイベントを呼び起こすようなものではありません。しかし、あなたのポイントを含めるようにコードを更新します。 – Magnus

+0

イベントハンドラのコードは、他のプログラマがいつでも更新でき、安全でないと思われる理由はありません。つまり、コンピュータが爆発するのと同じではありませんが、クラッシュすることになり、その理由を理解するためにデバッグする必要があります。これは時間の無駄です。常に壊れやすいコードではなく、堅牢なコードを書く方が良い。 –

関連する問題