C# 未调用oninherited窗体上的OnLoad事件
我有三张表格C# 未调用oninherited窗体上的OnLoad事件,c#,winforms,inheritance,C#,Winforms,Inheritance,我有三张表格 FormBase没有onload事件 FormBaseDetail:FormBase-> 在这个表单上,我使用可视化设计器创建了一个加载事件 FormBoxDetail:FormBaseDetail-> 在这个表单上,我还使用可视化设计器创建了一个onload事件 创建FormBoxDetail时,调用FormBaseDetail上的onload事件,但调用FormBoxDetail上的onload事件。这是从来没有被称为 我做错了什么 public partial class F
FormBase
没有onload事件
FormBaseDetail:FormBase
->
在这个表单上,我使用可视化设计器创建了一个加载事件
FormBoxDetail:FormBaseDetail
->
在这个表单上,我还使用可视化设计器创建了一个onload事件
FormBoxDetail
时,调用FormBaseDetail
上的onload事件
,但调用FormBoxDetail
上的onload事件
。这是从来没有被称为
我做错了什么
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");
}
}
无法触发加载事件的原因只有两个:
FormBoxDetail\u Load
未附加到Load
事件。但你是说这不是你的情况FormBoxDetail
。确保您正在创建FormBoxDetail
类的实例。您可能正在使用FormBaseDetail
。确保您使用的是正确的表单类var form = new FormBoxDetail();
form.Show();
第一个是
FormBaseDetail\u Load
处理程序,然后是FormBoxDetail\u Load
处理程序。我碰巧从一个可执行项目中实例化(新)一个类e.a.MyClasss c=new MyDll.MyClass(par),而表单没有加载。
我发现我忘了加载它:
应用程序。运行(c)
请转到FormBoxDetail.designer.cs,查看是否将
FormBoxDetail\u Load
映射到this.Load
事件。@GuidoG,正如您所看到的,加载事件使用了不同的事件处理程序-FormBoxDetail\u Load,而不是FormBoxDetail_Load@GuidoG您的代码中没有FormBaseBox
。在你的代码中没有FormBaseList
编辑了我的问题,等一段时间,因为有个叫Sergey的家伙在编辑我的问题code@GuidoG有个叫Sergey的家伙为了从代码中删除无用的名称空间定义并使其可读而做了一些肮脏的工作。在您的代码表单中仍然没有创建类似以下FormBoxDetail表单=new FormBoxDetail()的FormBaseBox
;在FormBoxDetail.Designer.cs中有this.Load+=new System.EventHandler(this.FormBoxDetail\u Load);FormBoxDetail上有用户控件,比如文本框和FormBaseDetail没有的东西,所以我可以确定正确的表单是loaded@GuidoG刚刚试过你的代码。如果创建了正确的表单并附加了两个事件处理程序,那么我会看到两个消息框。我不明白为什么这对您有效而对我无效。我剥离了表单,只包含您在我的问题中可以看到的代码,但在这里它仍然不起作用。我正在使用visual studio 2013和framework 4。5@GuidoG这是我的名片,请试一试