在子窗體中的按鈕事件中加入﹕
private void button1_Click(object sender, System.EventArgs e)
{
((Form1)this.MdiParent).menuItem2.Enabled=false;
}
注﹕Form1是父窗體名﹐menuItem2是父窗體中的菜單
private void button1_Click(object sender, System.EventArgs e)
{
((Form1)this.MdiParent).menuItem2.Enabled=false;
}
注﹕Form1是父窗體名﹐menuItem2是父窗體中的菜單
有这样的错误信息
“System.Windows.Forms.Form”并不包含对“menuItem2”的定义
改完后问题还在。
“System.Windows.Forms.Form”并不包含对“menuItem2”的定义
1> 在 Child Form 的 Constructor 中加一參數
如 public ChildForm(System.Windows.Forms.MenuItem menuitem);
2)在打開 Child Form 的時,把這個物件傳過去就可以了
ChildForm cf = new ChildForm(this.MenuItem2);
父窗体ParentForm打开子窗体
//------打开子窗体cf------------------------------------
ChildForm cf = new ChildForm(this.menuItem2);
cf.MdiParent=this;
cf.Show();
//------------------------------------------
子窗体ChildForm中
public ChildForm (System.Windows.Forms.MenuItem menuItem)
{
//......
menuItem.Enabled=true;
//......
}
这样是可以的。我先谢谢。
但还不能实现我程序中的功能。功能是程序运行时(父窗体ParentForm)有个登录窗口(子窗体cf)
根据用户输入的姓名不同显示相应的菜单。
具体如下:
父窗体ParentForm打开后,在ParentForm_Load(object sender, System.EventArgs e)
{
//......
事件中打开子窗体cf(如上面所示)
//......
}
子窗体cf中按钮button1_Click(object sender, System.EventArgs e)
{
//.....
事件中让父窗体ParentForm中的多个顶级菜单或子菜单的Enabled属性等于false;
例如
menuItem1.Enabled=false;
menuItem2.Enabled=false;
menuItem3.Enabled=false;
menuItem4.Enabled=false;
menuItem5.Enabled=false;
menuItem6.Enabled=false;
menuItem7.Enabled=false;
//.....
}
请指教。
你的父窗體(Form1)中是否有menuItem2啊
然后((Form1)this.MdiParent).menuItem5.Checked=true;就可以了
注意括号