簡體   English   中英

如何從另一個 MDI 子窗體打開 MDI 子窗體

[英]how to open a MDI child form from another MDI child form

我有一個將屬性“MDI 容器”設置為 true 的表單,當按下 MenuStrip 上的標簽時會打開 MDI 子項,但我有兩個問題:

第一個是,一旦我打開一個 MDI Child,我就不能再打開另一個 我在打開當前 MDI 子項時按下的同一個 MenuStrip 上按下了不同的標簽,但沒有任何反應。

第二個問題是我無法從代碼中打開另一個 MDI 子窗體的 MDI 子窗體。

在本段之后,我將展示我的代碼的相關部分以及我嘗試過的一些事情(沒有解決方案)

//Event of the MenuStrip that opens an MDI child (homePage or sellProduct) from the MDI container

HomePage homePage = null;
SellProduct sellProduct = null;

private void HomeToolStripMenuItem_Click(object sender, EventArgs e)
{
    if (homePage == null)
    {
        homePage = new HomePage();
        homePage.TopLevel = false;
        homePage.MdiParent = this;
    }

    homePage.Show();
}

private void ToolStripSellPtoduct_click(object sender, EventArgs e)
{
    if (sellProduct == null)
    {
        sellProduct = new SellProduct();
        sellProduct.TopLevel = false;
        sellProduct.MdiParent = this;
    }

    sellProduct.Show();
}

我試圖以子形式復制它,但它不起作用。 可能重要的是,當我加載 MDI 容器時,我還加載了第一個 MDI 子項

private void MainPage_Load(object sender, EventArgs e)
{
    if (homePage == null)
    {
        homePage = new HomePage();
        homePage.TopLevel = false;
        homePage.MdiParent = this;
    }
    homePage.Show();
}

這就是我認為第一個問題所需的所有代碼(我無法使用我的 MenuStrip 從另一個表單打開 MDI 子表單)。 如果您需要我的代碼中的任何內容,我會提供。

在第二個問題中(我無法從代碼中打開另一個 MDI 子表單),當按下最后一個按鈕時,我試圖從另一個“SellProduct”打開 MDI 子表單“HomePage”:

public partial class SellProduct : Form
{
    public SellProduct()
    {
        InitializeComponent();
        }

            private void Button_Sale_Click(object sender, EventArgs e)
            {
                HomePage homePage = new HomePage();
                homePage.show();
                this.close();
            }
        }
    }
}

上面的代碼關閉了顯示 mdiparent 的 MDI 表單 SellProduct(但它不會再次執行 mdi 父級,而且 MenuStrip 仍然不起作用,很奇怪)並打開一個 MDI 父級(MenuStrip 實際工作的地方)。 所以不,它不會打開另一個 mdi 孩子,它只會做一些奇怪的事情。

僅此而已,感謝您的寶貴時間,歡迎您提供任何幫助,並希望您度過愉快的一天(:.

我終於解決了這個問題,這是我的解決方案:

問題 1)一旦我打開一個 MDI Child,我就不能再打開另一個; 我在打開當前 MDI 子項時按下的同一個 MenuStrip 上按下了不同的標簽,但沒有任何反應。

解決方案: MDI 子 forms 沒有顯示,因為我必須隱藏打開的一個(從 MainPage 中),然后再顯示另一個。

問題 2)我無法從代碼中打開另一個 MDI 子窗體的 MDI 子窗體。

解決方法:和第一個一樣的問題 如果實際顯示的表格沒有隱藏,新的不能顯示,因為你必須隱藏當前的,然后打開新的:

//In this case I want to show the HomePage
this.Hide();
HomePage homePage = new HomePage();
homePage.Show();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM