【问题标题】:Massive amount of groupboxes visually stacked, how to better organize them?海量的groupboxs在视觉上堆叠,如何更好地组织它们?
【发布时间】:2014-08-19 07:03:03
【问题描述】:

差不多就是这样。我有近 30 个组框要组织,大多数都堆叠在自己之上,只是根据顶部的组合框在视觉上启用或禁用。我知道在Form1.designer.cs 我可以手动输入他们的位置,但这并没有多大帮助。有没有关于如何最好地使用这个的任何提示?我也尝试增加窗口的大小,但还不够。

编辑: 我正在关注接受的答案,

有没有办法移动它们并将它们保持在它们的相对位置? 编辑2:是的,有:只需在更干净的区域创建一个面板,在面板中移动和调整所需的组框,然后将面板移动到选项卡中,而不是设置组框的父级,而是设置面板,例如

  panel1.Parent = tabPage3;

组框将在它们的相对位置:)

【问题讨论】:

  • 您是在问什么 会是更好的设计,还是如何 在 C# Winforms 中实现它?我猜,前一个问题更适合ux.stackexchange.com
  • 两者都没有,它们都被实现了,但是由于它们中的一些一起工作,所以它们是堆叠在一起的,我无法正确地组织它们的位置。无论如何,我将电脑连接到 1900x1200 的屏幕,并且增加了窗口大小,我可以修复它。但是我遇到了一个更大的问题,其中一些在程序运行时没有出现
  • 有一个控件叫FlowLayoutPanel。您可以使用它来支持“流体”布局。
  • 将 GroupBox 中的每组 RadioButtons 替换为单个下拉 ComboBox 控件。更易于管理,用户体验更好。

标签: c# winforms


【解决方案1】:

您可以使用具有足够页面的隐藏Tab 控件并将GroupBoxes 移动到那里。

当你的逻辑想要在你的目标容器上显示其中一个,一个 TabPage,从你的截图来看,并隐藏另一个你会做这样的事情:

groupBox2.Parent = yourTargetContainer;  // bring it out of the hidden Tab
groupBox1.Parent = hidden_tabPage1;      // hide it in a page of the hidden Tab

这里的 yourTargetContainer 是将 GroupBox 保存在特定位置的容器。 GroupBoxes 中的所有控件都将像往常一样与该框一起使用。

由于您需要在不同的位置使用它们,您可以为每个 GroupBox 添加一个标签以将其位置保存在 yourTargetContainer 上:

groupBox1.Tag = new Point(250, 40);
groupBox2.Tag = new Point(250, 40);
groupBox3.Tag = new Point(250, 90);
// ...

并用它把它放在正确的地方:

groupBox2.Parent = yourTargetContainer ;    
groupBox2.Location = (Point)groupBox2.Tag;

这样您就可以在设计器中轻松访问它们,您可以在其中微调它们。这将有助于找出他们应该去的网格布局..

但是,用户是否能够使用这些不断变化的输入控件?他们都有大屏幕吗?

【讨论】:

  • 试图解决这个问题我遇到了一个更严重的问题,一些组框甚至没有出现,尽管代码是正确的,它们只有在我将它们移出堆栈时才会出现,知道为什么会这样吗?另外,我是否需要任何特殊控件来“隐藏”选项卡?
  • 您只需在设计器中设置visible=false。注意:我的意思是附加选项卡控件,而不是您拥有的页面; tabPages 不容易被隐藏。 - 至于不会显示的组框:难道是您将它们移到而不是移到其他?这很棘手,因为您需要使用键盘;如果您使用鼠标,任何控件都将进入您将其移过的容器中。当您将它们分成自己的选项卡时,所有这些都会消失,每页一个 Groupbox 或者甚至两个或更多.. 一旦你找到它们,当然;-)
  • 非常感谢,这是一个很棒的机制,我基本上可以将它们组织起来,然后在我希望它们出现时将它们移入和移出标签
  • 没错。顺便说一句:如果您需要,同样的机制也有助于“隐藏”TabPage
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多