У меня есть приложение с плагиноподобной структурой.все формы приложения наследуются от базового UserControl:
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.
Любые идеи о том, как решить эту проблему?