MDI父窗體中的子窗體最大化後消除子窗體在父窗體菜單欄中的圖標


 

摘自:http://wenku.baidu.com/view/8202c4f2770bf78a6529542a.html

1.建立MainForm(設置屬性IsMdiContainer=true)父窗體如下所示。

 

2.雙擊工具欄上的Form1 圖標。設置Form1子窗體的顯示。

Form1子窗體顯示代碼如下:

private void toolStripButton1_Click(objectsender, EventArgs e)

{

    Form1 f1= new Form1();

    f1.WindowState = FormWindowState.Normal;

    f1.MdiParent = this;

    f1.Show();

}

 

3.選中菜單欄menuStrip1,設置其 ItemAdded 事件。

menuStrip1的ItemAdded事件代碼如下:

private void menuStrip1_ItemAdded(objectsender, ToolStripItemEventArgs e)

{

    if(e.Item.Text.Length == 0         //隱藏子窗體圖標

        || e.Item.Text == "最小化(&N)"  //隱藏最小化按鈕

        || e.Item.Text == "還原(&R)"  //隱藏還原按鈕

        || e.Item.Text == "關閉(&C)")//隱藏最關閉按鈕

    {

        e.Item.Visible = false;

    }

}

 

 

4.編譯運行該該項目,點擊工具欄上的Form1按鈕,普通、最大化和最小化顯示情況如下圖所示,可見此時子窗體的圖標在父窗體的菜單欄中已經消失,至此,任務完成,搞定。

<Normal>

 

<Maximize>

 

<Minimize>

 

[注意]:如果子窗體含有菜單的話,默認情況是子窗體的菜單會合並顯示在父窗體的菜單上;如果不需要在父窗體菜單中顯示,只需把父窗體菜單的AllowMerge屬性設置爲false即可。

 

 

子窗體From3

 

 

 

 

 

 

 

 

 

 

如果父窗體和子窗體菜單的屬性AllowMerge=true時,顯示情況如下所示:

 

當父窗體菜單的屬性AllowMerge=false時,顯示情況如下所示:

 

總結:父、子窗體的菜單是否合併顯示在父窗體的菜單中根據具體需要來決定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章