我新建了一个父窗体(Mainform),3个子窗体(oneform,twoform,threeform)
父窗体中有一个menuStrip控件,我想在打开和激活oneform窗体的时候会动态的添加一个菜单项,而当我点击别的子窗体则该菜单项消失(已经同时打开该3个子窗体)!我试着在oneform的构造函数里写了这么一段代码MainForm mf=new MainForm();
mf=(MainForm)this.MdiParent;
mf.menuStrip1.Items.Add("添加");
不过没成功,希望有高手能帮帮忙
父窗体中有一个menuStrip控件,我想在打开和激活oneform窗体的时候会动态的添加一个菜单项,而当我点击别的子窗体则该菜单项消失(已经同时打开该3个子窗体)!我试着在oneform的构造函数里写了这么一段代码MainForm mf=new MainForm();
mf=(MainForm)this.MdiParent;
mf.menuStrip1.Items.Add("添加");
不过没成功,希望有高手能帮帮忙
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Text;
7using System.Windows.Forms;
8
9namespace WindowsApplication2
10{
11 public partial class Form1 : Form
12 {
13 public Form1()
14 {
15 InitializeComponent();
16
17 }
18
19 private void toolStripButton1_Click(object sender, EventArgs e)
20 {
21 Form2 form = new Form2();
22 ToolStripMenuItem item = new ToolStripMenuItem((this.MdiChildren.Length + 1).ToString());
23 toolStripDropDownButton1.DropDownItems.Add(item);
24 form.MdiParent = this;
25 form.Text = item.Text;
26 ToolMenuItemEven rm = new ToolMenuItemEven(this, form, item);
27 form.Show();
28 }
29 }
30
31 public class ToolMenuItemEven
32 {
33 private Form form = null;
34 ToolStripMenuItem item = null;
35 private Form1 mdiForm;
36
37 public ToolMenuItemEven(Form1 mdiForm, Form fm, ToolStripMenuItem item)
38 {
39 this.mdiForm = mdiForm;
40 this.form = fm;
41 this.item = item;
42 fm.Disposed += new EventHandler(RemoveItem);
43 item.Click += new EventHandler(ItemClick);
44 ItemClearCheck();
45 item.Checked = true;
46 item = null;
47 fm = null;
48 }
49
50 private void RemoveItem(object obj, EventArgs e)
51 {
52 if (mdiForm != null)
53 {
54 mdiForm.toolStripDropDownButton1.DropDownItems.Remove(item);
55 }
56 }
57
58 private void ItemClick(object sender, EventArgs e)
59 {
60 if (form != null && item != null)
61 {
62 form.Activate();
63 ItemClearCheck();
64 item.Checked = true;
65 }
66 }
67
68 private void ItemClearCheck()
69 {
70 foreach (ToolStripMenuItem it in mdiForm.toolStripDropDownButton1.DropDownItems)
71 {
72 it.Checked = false;
73 }
74 }
75 }
76}