コントロール配列の代わり

このエントリーをはてなブックマークに追加  


VB 2005では、コントロール配列が使えなくなりました。まぁ、VBAでは初めから使えませんでしたから、Excel VBAユーザーにとっては"同じこと"なんですが、じゃ、どーする?複数のコントロールで同じプロシージャを使うときは、どーすりゃいい?てことになると、VB 2005では超便利になってます。

下図のように、ボタンを2つ用意します。



[Button1]にコードを書きます。

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    MsgBox("Hello World")
End Sub

[Button2]がクリックされたとき、この「Button1_Click」が実行されるようにします。
[Button2]を選択して、[プロパティ]ウィンドウの[イベント]ボタンをクリックします。



[Click]ボックスをクリックして「Button1_Click」を選択します。



実行すると、先の「Button1_Click」プロシージャが、次のようになります。

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
    MsgBox("Hello World")
End Sub

これで[Button2]をクリックすると「Button1_Click」プロシージャが実行されます。どちらのボタンがクリックされたかは、引数senderで判別できます。たとえば、

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

とすれば、



てな具合です。



このエントリーをはてなブックマークに追加