1

我的 C# 标准 Windows 窗体应用程序完成了,它有 10 个窗体。但是现在的新要求是将“多个表单”更改为一个仪表板,您可以在其中单击侧面或顶部栏上的链接,并一次在仪表板的主要区域中的表单之间切换,几乎完全相同旧的 HTML 框架与框架集一起工作的方式(想象一下我的 Windows 窗体是框架集)。

无需赘述,每种形式都非常复杂,多线程等等,我正在寻找一种简单的技巧来显示它们,而不是重新编码整个事物。

我查看了http://www.codeproject.com/Articles/37397/A-Multipanel-Control-in-C 但这不是我想要的。

有没有办法做到这一点?

4

3 回答 3

1

如果将表单转换为自定义控件,那么使用 TabControl http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.aspx在它包含的选项卡的表面。

通过使它们成为自定义控件,您可以避免混合它们中的每一个的代码(它们保持不同),但它们也很容易添加到其他表面。我使用带有十几个显示选项卡的 UI 来执行此操作。

于 2013-08-23T18:22:32.673 回答
0

我建议您使用选项卡式控件,或使用 MDI 容器,或两者的组合。MDI 有一些不错的行为,您可以通过实现它免费获得。您可以将每个选项卡硬编码到每个表单,或者有一个选择每个视图的下拉列表。如果你想管理每个表单的生命周期,你可以在每个表单上实现一个单例模式,或者使用 IOC。

不完全确定这会解决您的问题,但如果您有问题或更多细节,请告诉我。

于 2013-08-23T18:23:33.180 回答
0

我按照上面的建议使用 MDI 解决了这个问题,在 .NET Windows Forms 4.0 和 4.5.1 中效果很好。

在父窗体中:

声明一个新的子窗体。

myNewChildForm.MdiParent = 这个;

将子窗体 StartPosition 设置为 Manual。

将子窗体位置设置为 0,0。

将子窗体 WindowState 设置为最大化。

将子窗体 Dock 设置为 Dockstyle.Fill

这就是诀窍。

谢谢你们。

于 2014-01-21T17:03:49.863 回答