Winforms 在TableLayoutPanel中,如果Dock=Fill且AutoSize=true,则最后一列/行将占用所有剩余空间

Winforms 在TableLayoutPanel中,如果Dock=Fill且AutoSize=true,则最后一列/行将占用所有剩余空间,winforms,Winforms,在TableLayoutPanel中,如果我们设置AutoSize=true和Dock=fill 最后一列/行将占用所有剩余空间。 如何将其设置为所需的高度(行)和宽度(列)?您应该将TableLayoutPanel添加为具有两行两列的tbl1。然后设置dock=fill autoscroll=true,并将第一行的宽度设置为autosize,第二行的宽度设置为绝对0.00 F 对第1列和第2列执行相同的操作。 现在在第1行第1列中添加实际的TableLayoutPanel。我刚刚添加了最后一行

在TableLayoutPanel中,如果我们设置AutoSize=true和Dock=fill 最后一列/行将占用所有剩余空间。
如何将其设置为所需的高度(行)和宽度(列)?

您应该将
TableLayoutPanel
添加为具有两行两列的tbl1。然后设置
dock=fill autoscroll=true
,并将第一行的宽度设置为
autosize
,第二行的宽度设置为
绝对0.00 F

对第1列和第2列执行相同的操作。
现在在第1行第1列中添加实际的
TableLayoutPanel

我刚刚添加了最后一行,并将其大小设置为绝对和0像素。这对我很有用。

完成了@user232986的回答,帮助我解决了问题。 这是VB.NET的代码 在我为其选择的设计器中

  • 第1行:
    自动调整大小
    (例如包含标签之类的数据)
  • 第2行:
    自动调整大小
    (例如包含面板之类的数据)
  • 第3行:
    百分比100%
    (这是包含数据的最后一行)
  • 第4行:
    绝对0
    (添加虚拟行)
然后在我的代码中,我改变了这个设置,它就像一个符咒

Me.tableLay.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink
Me.tableLay.AutoSize = True
Me.tableLay.Dock = DockStyle.Fill

我只有一个列设置为
100,00%

对我有效的方法是——在TableLayoutPanel中添加一个虚拟(不可见)组件,强制创建一个新行,并使用(现在不可见,除了滚动条可见性方面的一个小故障)行为。这是一个混乱的建议。为什么这是公认的答案?你知道为什么它只适用于最后一行而不适用于最后一列吗?