我有3个表格
FormBase
没有onload event
FormBaseDetail : FormBase
-> 在这个表格上,我使用视觉设计器创建了一个on_load event
FormBoxDetail : FormBaseDetail
-> 在此表单上,我还使用可视化设计器在load event
上创建了一个
当 FormBoxDetail
已创建,onload event
在 FormBaseDetail
被称为但不是 onload event
在 FormBoxDetail
.这永远不会被调用。
我做错了什么?
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
处理程序。
关于c# - 继承窗体上的 OnLoad 事件不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27598901/