c#菜單動態合併 z

說明數組

在程序中常用彈出菜單,而且一個窗體中能夠存在多個彈出菜單。開發過MDI窗體的讀者可能都知道,當MDI子窗體最大化時,子窗體和主窗體的菜單可以自動的合併。這是如何實現的呢?本例實現了將兩個彈出菜單動態的合併成一個彈出菜單的功能。實例效果如圖1.2所示。工具

要點this

C# 2.0中已經將彈出菜單封裝爲Context MenuStrip控件,利用該控件中的Items對象能夠操做菜單中的菜單項。該對象是ToolStripMenuItem類型,使用Items.AddRange( )方法能夠向彈出菜單中添加菜單項,該方法原型以下。spa

public void AddRange (設計

    ToolStripItem[] toolStripItemscode

)orm

參數說明以下。對象

l     toolStripItems:控件的數組。blog

過程ip

(1)建立一個項目,將其命名爲Ex01_02,默認窗體爲Form1。

(2)從工具箱中向Form1窗體添加一個MenuStrip控件用來設計菜單;同時向窗體添加ContextMenuStrip控件用來設計右鍵菜單;選中MenuStrip控件建立一個「打開子窗體」主菜單,而後選中ContextMenuStrip控件爲其添加子項。

(3)爲程序添加一個窗體,默認名爲Form2,同時向窗體添加ContextMenuStrip控件用來設計右鍵菜單,而後選中ContextMenuStrip控件爲其添加子項。

private void 打開自窗體ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            f.MdiParent = this;
            f.Show();//顯示子窗體
            f.Resize += new EventHandler(f_Resize);
        }
        void f_Resize(object sender, EventArgs e)
        {
            Form2 f = (Form2)sender;
            ToolStripMenuItem item = new ToolStripMenuItem();
            for (int i = 0; i < f.contextMenuStrip2.Items.Count; )//合併菜單
            {
                item.DropDownItems.Add(f.contextMenuStrip2.Items[i]);
            }
            this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            item});
        }
相關文章
相關標籤/搜索