在.NET 2.0 CF Forms项目中动态添加/删除控件

时间:2013-05-22 16:30:34

标签: user-controls compact-framework .net-2.0 c#-2.0

我正在开发一个移动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

在初始加载时工作正常,但我现在需要能够添加/删除控件。我知道我可以

  • 找到我需要插入的地方
  • 设置新的控件位置
  • 更改其后的所有控件的位置(基于新控件的高度的偏移量)

但这似乎是一种“糟糕”的方式,因为如果控件总是在前面添加,那么后一个控件都需要更新。有没有办法更好地管理所有控件的位置,以便动态地简化添加和删除?

0 个答案:

没有答案