2
我有一個插件式結構的應用程序。 所有申請表格從基站用戶控件繼承:加載事件沒有從從另一個程序集加載的繼承用戶控件中觸發(Winforms)
public class BaseUserControl : UserControl
{
// some common properties and methods
//
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
}
並且在不同的組件被編譯。
當我想表明一種形式,它通過這個序列:
assembly = Assembly.LoadFile(assemblypath);
.
.
frm = (BaseUserControl)assembly.CreateInstance(frmname);
.
.
SomeContainer.Controls.Add(frm);
MainScreen.Controls.Add(SomeContainer);
這些形式常見的結構是:
public class TestForm : BaseUserControl {
public TestForm(){InitializeComponent();}
private void InitializeComponent(){
.
.
this.Load += new System.EventHandler(this.TestForm_Load);
.
}
private void TestForm_Load(object sender, EventArgs e){}
}
的問題是,這些形式的Load事件不不會被解僱。
另一個行爲,我不明白如何,當在基類的OnLoad中設置斷點時,調用堆棧顯示從InitializeComponent中調用。
關於如何解決這個問題的任何想法?
謝謝你的回答。 事實上,術語表和用戶控件的混合是由於法語翻譯;我的意思是通過形成應用程序屏幕,但從技術上講,有一個主要的system.windows.forms.form,一切都駐留在用戶控件中。 包含Web瀏覽器的模塊發生錯誤(部分應用程序已在asp.net中),並且在創建事件處理函數之前,該基本用戶控件Load事件正好在該Web瀏覽器插入到控件集合中時調用。 – RMS 2010-08-08 14:27:05