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;
}
}
展开
 我来答
heroius
推荐于2016-04-01 · TA获得超过1178个赞
知道小有建树答主
回答量:746
采纳率:0%
帮助的人:241万
展开全部
不要在子窗体中建立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;
}
}
食趣无限mI
2010-11-09 · 超过16用户采纳过TA的回答
知道答主
回答量:134
采纳率:0%
帮助的人:61.7万
展开全部
子窗体的构造函数改下,把父窗体当作参数传进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laosong2008
2010-11-09 · TA获得超过159个赞
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:241万
展开全部
在子窗口类里面放一个父窗体对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式