簡體   English   中英

從另一個子窗體打開子窗體並將 MDI 設置為父窗體 - 怎么辦?

[英]Opening a child form from another child form and set MDI to parent form - how to do?

我有一個 MDI 表格。 在這個 MDI 表單中,我可以使用以下方法打開一些子表單:

這是在MainForm

Form1 f1 = new Form1;
f1.MdiParent = this; //this refers to MainForm (parent)
f1.Show();

這按預期工作!

但是現在,當我處於子窗體 (Form1 -> f1) 時,我想打開另一個窗體作為MainForm的子窗體,但是當我使用this關鍵字時,它會指向f1 如何在f1打開新表單並將其MdiParent設置為MainForm

嘗試從以下位置分配您的第一個孩子的父表單:

Form2 f2 = new Form2;
f2.MdiParent = this.ParentForm; //this refers to f1's parent, the MainForm
f2.Show();

希望這可以幫助。

讓我們假設第二個窗體是 f2。那么,窗體 f1 中在 MDI 父窗體中創建新窗體 f2 的代碼將是:

Form2 f2 = new Form2;
f2.MdiParent = this.MdiParent;
f2.Show();

好吧,不要與列出的“解決方案”爭論……但是如果我正確理解了請求並且嘗試上述解決方案不起作用,我會執行以下操作……

Form2 f2 = new Form2();
        f2.MdiParent = MDIParent1.ActiveForm;
        f2.Show();

讓我們假設第二個表單是 frm2。那么,在表單 frm1 中在 MDI 父表單中創建新表單 frm2 的代碼將是:創建新對象然后再次檢索數據 mdiparent 表單解決了凍結處置表單

Dim dru as New frm2 '// another form call
dru = New frm2
dru.mdiparent = frm1 '// main forms
dru.show()

我遇到了同樣的問題並嘗試了所有不同的解決方案。 最后,對我有用的是:

Dim ChildForm As New AddingText("")
' Make it a child of this MDI form before showing it.
ChildForm.MdiParent = MDIParent1
ChildForm.Dock = DockStyle.Fill
MDIParent1.m_ChildFormNumber += 1
ChildForm.Text = "Client Existent" & MDIParent1.m_ChildFormNumber
ChildForm.Show()

打嗝是不能與 ShowDialog() 結合使用,但我可以忍受它。

暫無
暫無

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

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