winforms 如何在win应用程序中加载面板内的表单其他表单

cnwbcb6i  于 2023-05-18  发布在  其他
关注(0)|答案(5)|浏览(306)

我用C#创建一个Windows窗体应用程序。
我有一个通用表格和一个面板。
我用代码将子窗体显示到这个面板中:

SubForm objForm= SubForm.InstanceForm();
this.IsMdiContainer = true;
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();

现在我想在这个面板的子窗体上显示其他窗体,但是我不知道怎么做。

qnzebej0

qnzebej01#

我认为你的问题通过这个代码解决了:

SubForm objForm= SubForm.InstanceForm();
    objForm.TopLevel = false;
    pnlSubSystem.Controls.Add(objForm);
    objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    objForm.Dock = DockStyle.Fill;
    objForm.Show();
kq0g1dla

kq0g1dla2#

据我所知,你们很接近了。要将另一个表单添加到subform中,请尝试相同的代码:

pnlSubSystem.Controls.Add(objForm);

use(其中objForm2是新的subForm

SubForm objForm2 = new SubForm();
objForm.Controls.Add(objForm2);
ru9i0ody

ru9i0ody3#

因为你已经得到了答案,删除this.IsMdiContainer = true;,你的代码将运行得很好。因为IsMdiContainer属性将窗体的显示和行为更改为MDI父窗体。当此属性设置为true时,窗体将显示一个淹没的工作区。分配给父窗体的所有MDI子窗体都显示在其工作区中。

SubForm objForm= SubForm.InstanceForm();
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();

objForm表单,它将成为子表单的模板。每次要为应用程序创建一个新的子窗口时,都可以创建此模板窗体的新示例,并将第一个窗体作为其父窗体。

//Create a new instance of the MDI child template form
SubForm objForm = new SubForm(); 
//Set parent form for the child window 
objForm.MdiParent=this; // Last ObjForm or something
//Display the child window
objForm.Show();
1zmg4dgp

1zmg4dgp4#

另一种方式:

objForm.TopLevel = false;
objForm.Parent = pnlSubSystem;
objForm.Show();

这是我对Stackoverflow的第一个回答。

14ifxucb

14ifxucb5#

Blockquote Languege越南语:))

public void Xe_ExamSchedulerMethod()
{
    if (xeForm == null)
    {
        xeForm = new Form_Xe();
        xeForm.TopLevel = false;
        xeForm.Dock = DockStyle.Fill;

        // Thêm form_Xe vào control con cuối cùng trong Xe_tableLayoutPanel2
        Xe_tableLayoutPanel2.Controls.Add(xeForm);

        // Đăng ký sự kiện Closed để set xeForm về null
        xeForm.Closed += (s, args) => { xeForm = null; };
    }

    // Hiển thị form_Xe
    xeForm.Show();
}

相关问题