在Form1
,我使IsMdiContainer
,我增加了一个MenuStrip
。 在Form1_Load
我的“新” Form2
,我assiging Form2.MdiParent
到this
是Form1
。 我也最大化Form2
和该操作效果很好。
在Form2
我有一个treeView
上的形式的左侧和形式的右侧我想显示多种不同的形式与将取决于所选择的节点或一级的各种编辑功能treeView
。
我想创造一些编辑数据不同的形式,将显示在Form2
根据从选择treeView
。 我似乎无法添加形式将MDIChild,我已经看到一些帖子,其中添加的形式形式可以创造出我不知道的一些编程的问题。
我真的没有任何的代码粘贴到这个职位,因为似乎没有什么,除了这是很简单的MDI父子关系的工作。
在此先感谢您的帮助。
有很多关于这个问题的信息,但有些文件可能很难理解一些新的开发。 跟着这些步骤:
- 打开Visual Studio
- 创建一个Windows窗体应用程序
- 点击窗体
- 转到属性 , 形式
- 最小尺寸:1366个像素×768个像素。
- 启动最大化
- 重要元素是的IsMdiContainer
- 打开工具箱。
- 进入菜单
- 拖动FileMenu到窗体
- 建立你的菜单
- 然后去解决方案管理器
- 右键单击添加项目
- 添加另一种形式
- 我离开了我的一样窗体2(在实际的程序,不是一个好名字)。
因此,那些十五步之内,我们有所有我们需要完成我们的目标。 所以我们将做些什么来完成我们的任务是:
- 回到我们的第一个表
- 转到我们的FileMenu
- 双击要链接的菜单按钮。
这将加载代码视图,内部的区域把这个:
Form2 newFrm = new Form2();
newFrm.MdiParent = this;
newFrm.Show();
这段代码正在做的是三个不同的东西:
1号线:它实际上是调用我们的对象,在这种情况下,第二种形式。 它实际上是构建我们的对象对我们来说。
2号线:实际上是连接我们的第二个形式,以我们目前的形式,这在物理上把我们的第二种形式为子窗体 。
3号线:这是实际的物理显示按钮被按下时,我们的第二个形式。
这就是你所需要的物理显示格式 。
在关于你的第二个问题,我不是很确定你试图完成什么。 这听起来像你想有一棵树,然后作为一个节点被选择的形式改变特定语境的右手边。
现在,这是不是最好的例子,但你的意思是这样?
TreeNode node = treeView1.SelectedNode;
if (node.Text.Contains("XP"))
{
TextBox one = new TextBox();
Panel i = new Panel();
i.Dock = DockStyle.Right;
i.BackColor = Color.Black;
i.Controls.Add(one);
i.Show();
TreeFrm.ActiveForm.Controls.Add(i);
}
不知道如果这是你正在寻找的东西。 显然,你想实现一个FlowLayoutPanel中 ,使定位不是对你的痛苦。 请记住MDI父,有子窗体作为一个MDI父将不能很好地工作。 由于大部分的东西会默认为MDI父窗体停靠/定位。 这个例子是不是很漂亮,但我不完全知道什么你问的。
你们是不是要停靠在同一表格上的其他表格或部件?