C# 多个Windows窗体中的公共元素-编写一次
我是一名web开发人员,对Windows窗体有一些基本经验 我需要创建一个Windows应用程序,使用一个包含大量页面的表单-我需要能够多次更改表单中100%的内容(无弹出窗口)。我希望主导航元素是左侧的一列按钮。这些按钮应更改表单的其余部分 从我所做的搜索来看,MDI似乎接近我想要的解决方案 使用MDI的问题:我不希望文件编辑窗口位于顶部 最重要的部分:这里有一个大型的、复杂的面板,上面有很多控件,我想在这个表单中的几个页面上显示这些控件。我想写一次面板,但在多个页面上显示它,并从每个页面填充它C# 多个Windows窗体中的公共元素-编写一次,c#,winforms,panel,mdi,C#,Winforms,Panel,Mdi,我是一名web开发人员,对Windows窗体有一些基本经验 我需要创建一个Windows应用程序,使用一个包含大量页面的表单-我需要能够多次更改表单中100%的内容(无弹出窗口)。我希望主导航元素是左侧的一列按钮。这些按钮应更改表单的其余部分 从我所做的搜索来看,MDI似乎接近我想要的解决方案 使用MDI的问题:我不希望文件编辑窗口位于顶部 最重要的部分:这里有一个大型的、复杂的面板,上面有很多控件,我想在这个表单中的几个页面上显示这些控件。我想写一次面板,但在多个页面上显示它,并从每个页面填充
有人能告诉我一个好的模板或模式吗?我用MDI走错路了吗?我认为MDI不是你想要的。MDI确实适用于需要同时显示和排列多个窗口的应用程序。即使在这些情况下,我也不太喜欢它(我认为带有可固定工具窗口的VisualStudio模型更适合使用) 我会这样做:
- 对页面使用
。这将为您提供免费的按钮、事件和页面的可视指示器 (如果您出于任何原因不喜欢选项卡控件
,则为每个页面定义一个选项卡控件
(或面板
和)。然后,使用按键隐藏/显示页面。)选项卡控件
- 将可重用面板创建为
(请参阅)。然后,您可以在需要时添加该用户控件
的实例,并相应地设置属性。您还应该查找对控件的每个实例执行的常见任务,并将这些任务的代码放在控件本身中UserControl
样式
,模板
和其他与XAML相关的概念,它们与Web开发中看到的非常相似,并且没有winforms等价物。正如您所看到的,使用几行XAML很容易实现,但是在winforms中实现同样的目标需要大量可怕的黑客。我是唯一一个认为XAML真的很恶心的人吗???@jnylen与winforms相比,它是世界上最好的东西。winforms不支持任何东西,完全没有用处。我甚至会说-TabControl,而不是隐藏选项卡,因为这给了OP“导航按钮列”,我同意。。。毕竟,这就是TabControl
s的用途。不过,他可能不喜欢内置标签的外观。