不调用继承窗体上的 OnLoad 事件
本文关键字:OnLoad 事件 窗体 调用 继承 | 更新日期: 2023-09-27 18:35:00
>我有 3 种形式
-
没有
onload event
FormBase
-
FormBaseDetail : FormBase
->在此窗体上,我使用可视化设计器创建了一个on_load event
-
FormBoxDetail : FormBaseDetail
->在此窗体上,我还使用可视化设计器创建了一个 onload event
创建FormBoxDetail
时,将调用 FormBaseDetail
上的onload event
,但不调用 FormBoxDetail
上的onload event
。这永远不会被调用。
我做错了什么?
public partial class FormBase : Form
{
public FormBase()
{
InitializeComponent();
}
}
public partial class FormBaseDetail : FormBase
{
public FormBaseDetail()
{
InitializeComponent();
}
private void FormBaseDetail_Load(object sender, EventArgs e)
{
MessageBox.Show("FormBaseDetail");
}
}
public partial class FormBoxDetail : Test_app.FormBaseDetail
{
public FormBoxDetail()
{
InitializeComponent();
}
private void FormBoxDetail_Load(object sender, EventArgs e)
{
MessageBox.Show("why am i not getting called");
}
}
无法
触发 Load 事件的原因只有两个:
- 事件处理程序
FormBoxDetail_Load
未附加到Load
事件。但你说这不是你的情况。 - 您没有加载
FormBoxDetail
.确保正在创建FormBoxDetail
类的实例。可能您正在使用FormBaseDetail
。确保您使用的是正确的表单类。
此处将触发两个事件处理程序:
var form = new FormBoxDetail();
form.Show();
第一个是FormBaseDetail_Load
处理程序,然后是FormBoxDetail_Load
处理程序。
它只是发生在我身上,当我从一个可执行项目中实例化(新(一个类,例如 MyClassess c = new MyDll.MyClass(par(,并且表单没有加载。我发现我忘了加载它:Application.Run(c(;
问候