动态控制布局

时间:2010-10-12 15:29:36

标签: c# winforms

我正在尝试构建一个相当复杂的UI并最大限度地减少未使用的空间。

我有一个未知数量的控件,我想将它们分组到面板中。所有这些面板都应添加到父面板中。

因此,它可能类似于包含6个子面板的单个父面板。其中一个可能有2个复选框和一个文本框。另一个可能会有3个下拉菜单,等等。我不会在设计时知道。也可能是我需要按照特定顺序显示子面板,而不是节省空间的最佳选择。

我试图为父面板和子面板使用FlowLayout。我认为这将是解决方案的一部分,但我不知道该怎么做。我考虑过测试每个可能的flowbreaks组合,然后选择父面板高度最小的组合,但是计算量太大。

有没有资源可以涵盖这类事情?或许我的做法可能是错的?我认为我的用户希望控件尽可能接近,但是要进行分组。如果不是为了尝试对它们进行分组,我可能可以使用单个父FlowLayout面板。

我认为问题几乎就像包装问题一样,但由于分组问题,它更像是包装问题中的包装问题。

1 个答案:

答案 0 :(得分:0)

关于在特定布局中生成动态控件的快速说明。我假设您将从某些数据源加载控件的数据。如果您可以为源

添加几列数据,它将真正简化您的生活

GroupIDSortOrder都可以是简单的int字段。

每当我完成动态布局时,如果您对数据有一些顺序,我发现编写通用插入逻辑要容易得多。然后可以在数据中切换组和排序,而无需在代码中重写一些疯狂的case语句,否则您将不得不写入。