如何呈现动态数量的GroupBoxes

时间:2013-11-08 22:50:47

标签: vb.net visual-studio-2010

我正在尝试执行以下操作:对于每个合约,使用一些信息呈现GroupBox

合约数量会根据所选公司而变化。

我将如何完成这样的事情?我能够实现或找到帮助的唯一动态GUI元素是DataGridViews,它们直接绑定到数据。

2 个答案:

答案 0 :(得分:0)

不是很多,但这是一个开始:

 for each c in Contracts
     Dim g as new GroupBox
     with g
         .Location = ...   ' needed else it could be off screen
         .Size = ...
     End With

     Dim Lbl as new Label 
     ... set location, text etc
     g.Controls.Add(lbl)
     ... continue for the stuff needed
     g.Controls.Add(otherstuff)

     ' depending on the amount of similarity you can make factories:
     Dim cbo as ComboBOx = MakeContactCBO(someKey)
     g.Controls.Add(cbo) 

     Me/theFormName.Controls.Add(g)            ' add g with all the child ctls
  next c

它可能会变得冗长。如果它们有些相似,你可以在表格上有几个,然后根据需要修改或隐藏它们。例如为80%的情况提供服务的布局,然后删除并添加到该基础。

答案 1 :(得分:0)

我所寻找的是DataRepeater控件。这让我可以为列表中的每个实体编写一个“模板”,并为实体数量重复它。