【发布时间】:2012-10-07 06:50:59
【问题描述】:
我正在创建一个具有多个不同屏幕的 Windows 移动应用程序。每个屏幕的底部都有一个菜单栏,用户可以点击它来浏览每个屏幕。
我的问题是我应该为每个屏幕使用一个新表单并克隆菜单还是使用一个表单并将所有其他屏幕作为控件并将它们添加到主表单?
干杯
【问题讨论】:
标签: c# winforms windows-mobile compact-framework
我正在创建一个具有多个不同屏幕的 Windows 移动应用程序。每个屏幕的底部都有一个菜单栏,用户可以点击它来浏览每个屏幕。
我的问题是我应该为每个屏幕使用一个新表单并克隆菜单还是使用一个表单并将所有其他屏幕作为控件并将它们添加到主表单?
干杯
【问题讨论】:
标签: c# winforms windows-mobile compact-framework
我会投票支持控制。
这两种机制都可以实现您想要的流程,并且从基本的角度来看,两者都不会变得更糟(如加载时间、内存消耗或您拥有什么),因此这在很大程度上是个人风格决定。我,我使用的 UI 框架在很大程度上适用于 UserControls,所以我就使用它。
一般来说,当我创建一个应用程序时,我有一个单独的父/主机表单,其中包含我放置视图的工作区。这些视图是用户控件。无论我使用选项卡式工作区还是桌面工作区,它们最终仍然是控件。我使用多个完整表单的唯一原因是如果我有一个对话框(警告、输入等),我将在其中进行ShowDialog 调用。
【讨论】:
根据link,Windows Mobile 中没有 MDI 功能。
在我们的应用程序中,我们为每个屏幕使用不同的表单。
打开新窗口有两种方式:
formName.ShowDialog():新屏幕将作为另一个屏幕的子屏幕打开。在这种情况下,在孩子关闭之前,您将无法访问您的父表单。
formName.Show():新屏幕不会作为另一个屏幕的子屏幕打开。因此,即使孩子没有关闭,您也可以访问您的父母。
【讨论】:
您可以在单个表单中使用 TabControl,每个选项卡都有自己的控件。无需动态添加控件。和一个单一的形式。此答案中更详细地讨论了实现此目的的方法。
【讨论】: