简单地说,我试图将标签动态添加到可以隐藏的TableLayoutPanel中,在这种情况下,将高度设置为0以避免尴尬的空行。
(我需要这个像手风琴一样工作,我使用TableLayout因为后来我需要使用复杂的控件,比如treeViews):
while index < myDataTable.rows.count
dim myLabel as new Label
myLabel.Name = myDataTable.rows(index)("labelText").toString
myLabel.Text = myDataTable.rows(index)("labelText").toString
myTableLayout.controls.Add(myLabel, 0, index)
If cbool(row("initialyVisible")) then
myTableLayout.GetControlFromPosition(0, index).Visible = true
myTableLayout.RowStyles.Add(New RowStyle(SizeType.Absolute, 150))
else
myTableLayout.GetControlFromPosition(0, index).Visible = false
myTableLayout.RowStyles.Add(New RowStyle(SizeType.Absolute, 0))
endif
index = index + 1
end while
这很有效。
但是,在执行期间,这些标签的可见状态+行高可能会发生变化:
If visibleFlag = true Then
myTableLayout.RowStyles(i).Height = 150
myTableLayout.GetControlFromPosition(0, i).Visible = True
Else
myTableLayout.RowStyles(i).Height = 0
myTableLayout.GetControlFromPosition(0, i).Visible = false
End If
说明了2个问题 in this image。 有什么可以做的吗?