动态事件而不创建实例

时间:2013-11-04 07:53:03

标签: .net winforms events dynamic instance

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

我的情景

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

以下代码不起作用,因为它需要一个实例,frm是一个实例

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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

等等