0

我们可以在不创建对象实例的情况下将事件处理程序动态附加到类吗?

我的情景

从主窗体 [Level 0] 我调用子窗体 [Level 1],我可以从主窗体添加动态事件到这些子窗体。但是从子表单中,我再次调用表单 [级别 2]。我无法从此级别 [级别 2] 添加动态事件。我不知道表单何时从级别 1 获得调用,它必须是按钮单击事件或任何其他事件。

下面的代码不起作用,因为它需要一个实例,这里 frm 是一个实例

Dim frmLoad = New FormLoadEventHandler(AddressOf On_Load)
t.GetEvent("Load").AddEventHandler(frm, frmLoad)

我将单个程序集加载到单个平台中,因此每个单独的程序集都有很多子表单,从我的主模块我可以通过反射访问初始表单。我的想法是使从我的平台调用的所有形式的字体都相同

4

2 回答 2

0

只是传递字体怎么样......

'Modify a form so the constructor takes a font

Private Property CustomFont As Font
Public Sub New(FontToUse As Font)
    ' This call is required by the designer.
    InitializeComponent()

    'Store the font for later use       
    Me.CustomFont = FontToUse

    'Use the font on all controls as appropriate here
End Sub


Public Sub MakeChildren()
    'Create a child form and tell it which font to use
    Dim ChildForm As New ChildForm(CustomFont)
    ChildForm.Show()
End Sub

等等等等

于 2013-11-04T09:39:28.970 回答
0

将主窗体的实例传递给您的 2 级窗体,并使用传递的引用添加事件处理程序。

于 2013-11-04T08:03:13.747 回答