调整TableLayoutPanel中的行的大小

时间:2015-10-28 17:38:27

标签: vb.net winforms tablelayoutpanel

简单地说,我试图将标签动态添加到可以隐藏的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。 有什么可以做的吗?

0 个答案:

没有答案