2010-11-24 4 views
1

は、私はボタン1サブルーチン同様のボタンのアクションをグループ化するより良い方法はありますか?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim buttonText As String = Button1.Text 
     someOtherRoutine(buttonText) 
    End Sub 

私は私のメインフォームで、ボタンをたくさん持っているを持っていると言います。彼らはこのようにすべて同じことをします。テキストを取得し、他のルーチンに渡す。私は20のボタンを持っている場合、私は20のサブルーチンを持っています。多くのサブルーチンを作成せずにこれを行う方が良い(または標準的な方法)がありますか?

おかげ

答えて

3

あなたはボタンのすべてを処理するために、この1つのサブルーチンを使用することができます。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
    Handles Button1.Click, _ 
    Handles Button2.Click, _ 
    ... 
    Handles Button20.Click 

     Dim myButton As Button = sender 
     Dim buttonText As String = myButton.Text 

     ... 

End Sub 
+0

私はあなたが一度だけハンドルを置く必要があると考えました。 Button1.Click、Button2.Clickのように...送信ボタンをテキストにするためにsendを送信することを指摘してください。 –

+0

@Ash Burlaczenko - あなたのコメントを投稿する前に回答が更新されました;) – Oded

+0

こんにちは、このサブルーチンについて説明できますか? Button1をクリックするだけでいいのですか?私のアプリケーションでは、Button1だけでなく、Button2、Button3などをクリックする必要があります。ありがとう – ghostdog74

1

あなたはすべてのボタンに同じイベントハンドラを追加するためにAddHandlerを使用するかは、カンマを使用することができますHandles句の区切りリスト。

Sub EventHandler() Handles Obj.Ev_Event, Obj2.Ev_Event 
' Handle the event. 
MsgBox("EventHandler caught event.") 
EndSub 
関連する問題