クリックすると他のbutton
をプログラムでクリックするbutton
をコーディングしたい.
たとえば、Button1
とButton2
という名前の2つのボタンがあります。Button1
をクリックした直後にButton2
をクリックする必要があります。これは可能ですか?
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Button2_Click(Sender, e)
End Sub
このコードは、プログラムでボタンのクリックイベントを呼び出します
最良の実装は、正確に何をしようとしているのかに依存します。 Nadeem_MKは有効なものを提供します。あなたもできることを知ってください:
PerformClick()
メソッドを使用して_Button2_Click
_イベントを発生させます。
_Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
'do stuff
Me.Button2.PerformClick()
End Sub
_
同じハンドラを多くのボタンにアタッチします:
_Private Sub Button1_Click(sender As Object, e As System.EventArgs) _
Handles Button1.Click, Button2.Click
'do stuff
End Sub
_
Button1_Click(...)
メソッドと同じ引数を使用して_Button2_Click
_メソッドを呼び出します([〜#〜] if [〜#〜]どちらが送信者であるかを知る必要があります。例):
_Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
'do stuff
Button2_Click(sender, e)
End Sub
_
この種の状況のベストプラクティスは、すべてのロジックを保持するメソッドを作成し、別のイベントからイベントを呼び出すのではなく、両方のイベントでメソッドを呼び出すことです。
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
LogicMethod()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
LogicMethod()
End Sub
Private Sub LogicMethod()
// All your logic goes here
End Sub
EventArgs(e)のプロパティが必要な場合は、メソッドのパラメーターを介して簡単に渡すことができます。これにより、送信者が異なるタイプの場合でもエラーを回避できます。ただし、両方の送信者のタイプがボタンであるため、これは問題にはなりません。
ボタン1に呼び出されるイベントがあるとしましょう
Button1_Click(Sender, eventarg)
Button2で呼び出す場合は、この関数を直接呼び出します。
Button1_Click(Nothing, Nothing)
c#ではこれは機能しています:D
protect void button1_Click(object sender, EventArgs e){
button2_Click(button2, null);
}
protect void button2_Click(object sender, EventeArgs e){
//some codes here
}
vb.net
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Button2_Click(Sender, e)
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
//some codes here
End Sub