2023/07/07(Fri) 01:48:05 編集(投稿者)
■No102139 (ぴよ さん) に返信
VB だとこんな感じです。
Partial Public Class Form1
Private Shared MyEventKey As New Object()
Public Custom Event MyEvent As EventHandler
AddHandler(value As EventHandler)
Events.AddHandler(MyEventKey, value)
End AddHandler
RemoveHandler(value As EventHandler)
Events.RemoveHandler(MyEventKey, value)
End RemoveHandler
RaiseEvent(sender As Object, e As EventArgs)
Dim handler As EventHandler = DirectCast(Events(MyEventKey), EventHandler)
If handler IsNot Nothing Then
handler.Invoke(sender, e)
End If
End RaiseEvent
End Event
Public Value As Integer
Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
Dim handler As EventHandler = DirectCast(Events(MyEventKey), EventHandler)
If handler IsNot Nothing Then
handler.Invoke(Me, e)
Else
Value = 100
End If
MyBase.OnMouseDown(e)
End Sub
End Class
Partial Public Class Form2
Public WithEvents frm1 As New Form1
Public Sub New()
InitializeComponent()
frm1.TopLevel = False
frm1.Dock = DockStyle.Fill
frm1.Visible = True
Me.Controls.Add(frm1)
End Sub
Public Sub Test(sender As Object, e As EventArgs) Handles frm1.MyEvent
frm1.Value = 1
End Sub
End Class