关于这个主题有很多信息,但是对于一些新开发人员来说,一些文档可能难以理解。按着这些次序:
- 打开 Visual Studio
- 创建 Windows 窗体应用程序
- 点击您的表格
- 转到该表单的属性
- 最小尺寸:1366 x 768 像素。
- 启动最大化
- 重要的元素是IsMdiContainer
- 打开你的工具箱。
- 转到菜单
- 将FileMenu拖到您的表单上
- 建立你的菜单
- 然后转到解决方案资源管理器
- 右键单击添加项目
- 添加另一个表单
- 我离开了我的Form2(在一个真正的程序中,不是一个好名字)。
因此,在这十五个步骤中,我们拥有了实现目标所需的一切。所以我们要完成我们的任务是:
- 回到我们的第一个表格
- 转到我们的文件菜单
- 双击要链接的菜单按钮。
它将加载一个代码视图,在该区域内放置:
Form2 newFrm = new Form2();
newFrm.MdiParent = this;
newFrm.Show();
这段代码所做的是三件不同的事情:
第 1 行:它实际上是在调用我们的对象,在这种情况下是第二种形式。它实际上是在为我们构建我们的对象。
第 2 行:实际上是将我们的第二个表单链接到我们当前的表单,这实际上是将我们的第二个表单转换为子表单。
第 3 行:这实际上是在单击按钮时实际显示我们的第二个表单。
这就是您实际显示Form所需的全部内容。
关于你的第二个问题,我不完全确定你试图完成什么。听起来像是您试图拥有一棵树,然后选择节点时,表单的右侧将变为特定上下文。
现在这不是最好的例子,但你的意思是这样的吗?
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 父窗体停靠/定位。这个例子并不漂亮,但我不完全确定你的要求。
您是否尝试将其他表单或组件停靠在同一个表单上?