0

オブジェクトのインスタンスを作成せずに、イベント ハンドラーをクラスに動的にアタッチできますか?

私のシナリオ

メイン フォーム [レベル 0] からサブ フォーム [レベル 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 に答える