我有3个表格
FormBase
没有 onload event
FormBaseDetail : FormBase
->在这个表单上,我使用视觉设计器创建了一个
on_load event
FormBoxDetail : FormBaseDetail
->在这个表单上,我还使用视觉设计器创建了一个 on
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 事件 oninherited form 不会被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27598901/