ユーザーコントロールのイベントを親で知る




1年以上前に更新された記事です。
情報が古い可能性がありますので、注意してください。

ユーザーコントロールクラスにイベント実装すればいいわけで、、、

ユーザーコントロール側

UC_Button_Clickというイベントを作成し、ボタン1,2,3がクリックされたらイベントを発行する。

Public Class UserControl
    Public Event UC_Button_Click As EventHandler

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
        RaiseEvent UC_Button_Click(sender, e)
    End Sub
End Class

親となるフォーム側

handlesでイベントとプロシージャを関連付け。
senderには、ユーザーコントロールのボタンオブジェクトが入っているのは確かなんだけど、念のため型チェックしてメッセージボックスを表示する。

Public Class Form1
    Private Sub UC_Button_Click(sender As Object, e As EventArgs) Handles UserControl1.UC_Button_Click
        If TypeOf sender Is Button Then
            MsgBox(CType(sender, Button).Text & "が押されました。")
        End If
    End Sub
End Class
実行結果

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です