web-dev-qa-db-ja.com

プログラムでボタンをクリックする

クリックすると他のbuttonをプログラムでクリックするbuttonをコーディングしたい.

たとえば、Button1Button2という名前の2つのボタンがあります。Button1をクリックした直後にButton2をクリックする必要があります。これは可能ですか?

5
Marc Intes
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button2_Click(Sender, e)
End Sub

このコードは、プログラムでボタンのクリックイベントを呼び出します

12
sk2185

最良の実装は、正確に何をしようとしているのかに依存します。 Nadeem_MKは有効なものを提供します。あなたもできることを知ってください:

  1. PerformClick()メソッドを使用して_Button2_Click_イベントを発生させます。

    _Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        'do stuff
        Me.Button2.PerformClick()
    End Sub
    _
  2. 同じハンドラを多くのボタンにアタッチします:

    _Private Sub Button1_Click(sender As Object, e As System.EventArgs) _
        Handles Button1.Click, Button2.Click
        'do stuff
    End Sub
    _
  3. 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
    _
14
Chris

この種の状況のベストプラクティスは、すべてのロジックを保持するメソッドを作成し、別のイベントからイベントを呼び出すのではなく、両方のイベントでメソッドを呼び出すことです。

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)のプロパティが必要な場合は、メソッドのパラメーターを介して簡単に渡すことができます。これにより、送信者が異なるタイプの場合でもエラーを回避できます。ただし、両方の送信者のタイプがボタンであるため、これは問題にはなりません。

5
Nadeem_MK

ボタン1に呼び出されるイベントがあるとしましょう

Button1_Click(Sender, eventarg)

Button2で呼び出す場合は、この関数を直接呼び出します。

Button1_Click(Nothing, Nothing)
2
Pradip

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
0
井R3Naiz0