面板切换器自定义控件用于.net中的Winform?

时间:2009-10-01 01:31:47

标签: .net winforms user-controls

这是一个.net winform UI问题。

在许多情况下,我们希望设计一个UI,使您有多个选项,并根据您选择的选项,为您设置不同的详细信息UI。例如,想象一下用户注册:根据您选择的位置,可能会要求您填写不同的信息。通常,当我为此目的设计表单时,我将创建一个空面板,用于保存主表单上的位置。我将为每个细节UI创建一个用户控件。加载表单时,我将创建用户控件的实例(根据选项表示详细UI)并将它们停靠在面板上并隐藏不相关的控件。当用户更改她的选项时(可能通过下拉列表或通过一组单选按钮),我以编程方式决定需要显示哪个用户控件并将其隐藏。到目前为止一切都很好。

但是这个解决方案有一个问题,当你在VS表单设计器中打开你的表单时,你看到的只是一个空面板,你不知道填写用户控件时的样子。如果另一个程序员打开你的在设计师的形式,他不知道这里发生了什么,一个空的面板?然后他必须转到你的代码并找出用户控件。

那么,我们是否有一个与tabcontrol类似的用户控件,以便在设计时可以在设计器中以可视方式组织所有用户控件?当然,你会说,然后使用tabcontrol。但很明显,目的与tabcontrol不同,而是一个没有顶部标签按钮的tabcontrol。您可以让我写几行代码来隐藏tabcontrol上的选项卡按钮。是的,我们可以做到这一点,但是我发现在隐藏了标签按钮后,tabcontrol周围会有一些空间和它外面的其他控件,看起来并不理想。在视觉上,标签按钮比标签页本身占用更多的空间,因此隐藏它们会给你一些布局边缘问题。

是否有人制定了自定义控件以实现我的目的?我的意思是,来吧,这是一个常见的问题,我不相信每个人都在表格上留下一个空面板。必须有一些更好的解决方案。我需要你的帮助。感谢。

2 个答案:

答案 0 :(得分:2)

  

但是这个解决方案有一个问题,当你在VS表单设计器中打开你的表单时,你看到的只是一个空面板,你不知道填写用户控件时的样子。如果另一个程序员打开你的在设计师的形式,他不知道这里发生了什么,一个空的面板?然后他必须转到你的代码并找出用户控件。

我们也在整个地方做同样的事情。同意,如果您继续将面板添加到表单中,您将遇到此问题。简单的答案就是不要这样做。在项目中创建从Panel派生的UserControl。然后在表单中添加自定义控件。

现在,您可以独立于面板设计表单,并可以在其自己的窗口中设计每个面板。这个解决方案创建了一些源文件,但即使你没有显示和隐藏面板,以这种方式分离表单逻辑也是值得的。

答案 1 :(得分:0)

到目前为止,我发现使用tabcontrol并隐藏选项卡是最佳解决方案。有一些帮助here,但你是对的,这不太理想。

相关问题