我正在开发一个显示自定义控件列表(每个都包含标签和复选框)的移动 2.0 项目。我想找到一种更好的方法来跟踪控制位置。
控件包含在可滚动面板中。
控件的层次结构基本上是这样的
Menu Type 1
Menu Sub Type 1
Menu Item 1
Menu Item 2
Menu Type 2
Menu Sub Type 2
Menu Item 3
Menu Item 4
我最初添加它们的方式是panel.Controls.Add(controlToAdd)
并且每个后续控件的位置由前一个控件确定:
newControl.Top = lastControl.Bottom
这在初始加载时效果很好,但我现在需要能够添加/删除控件。我知道我可以
- 找到我需要插入的地方
- 设置新控件位置
- 更改跟随它的所有控件的位置(偏移量基于新控件的高度)
但这似乎是一种“糟糕”的方式,因为如果控件总是在前面添加,那么后面的每个控件都需要更新。有没有办法更好地管理所有控件的位置以动态地轻松添加和删除?