C#窗体继承后,如何在子类窗体中修改父窗体中控件的事件?
就是我想在子窗体的窗口变化(最大化、恢复正常、最小化)时候的LocationChanged事件写写代码去触发父窗体的事件,让父窗体实现添加或删除父窗体的MenuItem。...
就是我想在子窗体的窗口变化(最大化、恢复正常、最小化)时候的LocationChanged事件写写代码去触发父窗体的事件,让父窗体实现添加或删除父窗体的MenuItem。试了很久都没实现,搞得心里很烦躁了,希望高手帮帮我,谢谢了
放了,可是就是没有反应啊,我的代码是这样的就(父窗体:MergeForm1 子窗体:MergeForm2):
MergeForm1 mf1 = new MergeForm1();
private void MergeForm2_LocationChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
mf1.menuStrip1.AllowMerge = true;
else
{
mf1.menuStrip1.AllowMerge = false;
}
} 展开
放了,可是就是没有反应啊,我的代码是这样的就(父窗体:MergeForm1 子窗体:MergeForm2):
MergeForm1 mf1 = new MergeForm1();
private void MergeForm2_LocationChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
mf1.menuStrip1.AllowMerge = true;
else
{
mf1.menuStrip1.AllowMerge = false;
}
} 展开
3个回答
展开全部
不要在子窗体中建立MergeForm1的新实例!
你需要将父窗体的引用传到子窗体中,比如重载MergeForm2的构造函数,添加一个MergeForm1的参数,然后将子窗体的MergeForm1类变量指向这个引用。
更改后MergeForm2部分代码如下:
public partial class MergeForm2 : Form
{
//声明一个MergeForm1引用
MergeForm1 Parent;
......
//重载构造函数
public MergeForm2(MergeForm1 mf1)
{
......
this.Parent = mf1;
}
......
private void MergeForm2_LocationChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
Parent.menuStrip1.AllowMerge = true;
else
Parent.menuStrip1.AllowMerge = false;
}
}
你需要将父窗体的引用传到子窗体中,比如重载MergeForm2的构造函数,添加一个MergeForm1的参数,然后将子窗体的MergeForm1类变量指向这个引用。
更改后MergeForm2部分代码如下:
public partial class MergeForm2 : Form
{
//声明一个MergeForm1引用
MergeForm1 Parent;
......
//重载构造函数
public MergeForm2(MergeForm1 mf1)
{
......
this.Parent = mf1;
}
......
private void MergeForm2_LocationChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
Parent.menuStrip1.AllowMerge = true;
else
Parent.menuStrip1.AllowMerge = false;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询