C# 如何在win应用程序中的其他窗体中加载窗体内的窗体
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/17962341/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to Load Form inside panel other form in win app
提问by Iraj
I Create a Windows Forms application with C#.
我用 C# 创建了一个 Windows 窗体应用程序。
I have a general Form and a panel on it.
我有一个通用表格和一个面板。
I show subForm into this panel with code:
我使用代码将 subForm 显示到此面板中:
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();
now I want to show other form on subForm of this panel, But I dont know how to do it.
现在我想在这个面板的 subForm 上显示其他表单,但我不知道该怎么做。
采纳答案by M.Mohammadi
I think your problem resolved by this code:
我认为此代码解决了您的问题:
SubForm objForm= SubForm.InstanceForm();
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();
回答by Martijn van Put
As I understand, you're very close. To add another form into subform
try the same code instead:
据我了解,您非常接近。要添加另一个表单,请subform
尝试使用相同的代码:
pnlSubSystem.Controls.Add(objForm);
use (where objForm2
is the new subForm
)
使用(objForm2
新的在哪里subForm
)
SubForm objForm2 = new SubForm();
objForm.Controls.Add(objForm2);
回答by Mohit Shrivastava
Since you already got the answer that by removing this.IsMdiContainer = true;
your code would run perfectly fine. Because IsMdiContainer property changes the display and behavior of the form to an MDI parent form. When this property is set to true
, the form displays a submerged client area. All MDI child forms assigned to the parent form are displayed within its client area.
因为您已经得到答案,删除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 form which will be the template for the child forms. Each time you want to create a new child window to your application, you can create a new instance of this template form and make the first form as its parent form.
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();
回答by Alan Ackart
Another way:
其它的办法:
objForm.TopLevel = false;
objForm.Parent = pnlSubSystem;
objForm.Show();
This is my first answer on Stackoverflow.
这是我在 Stackoverflow 上的第一个答案。