我們可以將事件處理程序動態添加到某個類而無需創建對象實例嗎?動態事件無需創建實例
我的情況
從主要形式[0級]我打電話子表單[1級],這些子表單我能夠從主窗體中添加動態事件。但是從子表單我再次調用表單[級別2]。我無法從這個級別添加動態事件[級別2]。我不知道表單何時從第1級接到電話,它必須是按鈕點擊事件或任何其他事件。
下面的代碼不起作用,因爲在這裏需要一個實例FRM是一個實例
Dim frmLoad = New FormLoadEventHandler(AddressOf On_Load)
t.GetEvent("Load").AddEventHandler(frm, frmLoad)
我加載各個組件到一個單一的平臺,讓每一個人裝配有這麼多子的形式,從我的主我可以通過反射訪問初始表單。我的想法是使所有形式的字體都與我的平臺相同
我可能失去了一些東西,但是這並沒有任何意義,我......沒有實例一個表格,不會引發任何事件。你的意思是沒有_reference_一個實例嗎?如果是這樣,那麼答案是否定的 - 但它的解決方法很簡單 - 只需將相關參考通過代碼傳遞到需要的地方(將'l2frm'傳遞給'l0frm'或反之亦然) – Basic
我將單個程序集加載到單一的平臺,所以每個單獨的程序集都有來自我的主模塊的許多子表單,我可以通過反射訪問初始表單。我的想法是在我的平臺上調用所有形式的字體相同 –
這聽起來不像一個乾淨的架構。 「單一平臺」是什麼意思?單個AppDomain /進程/ ???如果你有組裝的控制權,你不應該需要反思(99%的時間)。如果您沒有控制權,更改字體可能會導致問題(文本溢出時會發生什麼情況?)。只有當您處理未知類型時,反射纔有用 - 您的類型未知的原因是否存在? – Basic