System.Windows.Forms.TableLayoutPanel AutoSize

时间:2013-09-04 20:05:06

标签: vb.net winforms

感谢你给这个一次性。

设置:

  1. 我在Form上有一个TableLayoutPanel,AutoSize = true,AutoSizeMode = GrowAndShrink。
  2. TableLayoutPanel也是AutoSize = true和AutoSizeMode = GrowAndShrink。
  3. 最后,在TableLayoutPanel中,我有一个标签,其中AutoSize = true。
  4. 现实:

    当我在Label中放入大量文本时,我希望它会自动调整大小。如果表单的高度超过650像素,我想在标签上向下压缩字体大小,直到表单大小降低到650像素高。不幸的是,这不会发生。相反,表单保持高(800+像素)并在下面循环,直到字体大小最小(6),而不会明显调整表单,表格或标签的大小。

    这是我正在使用的代码。温柔:)

      While Me.Height > 650 And (FontSize = -1 Or FontSize > 5)
    
            If FontSize < 3 Then 'hack
                FontSize = 12
            Else
                FontSize -= 1
            End If
    
            'I hoped this would just resize everything (label, TableLayoutPanel, Form)
            lblText.Font = New System.Drawing.Font("Microsoft Sans Serif", FontSize)
    
            'Then tried to force it to resize
            TableLayoutPanel1.PerformLayout()
    
            Me.Refresh()   'Maybe unnecessary
            Me.PerformAutoScale()   'Necessary?
            Me.Size = New Size(558, 200)  'Feeble attempt to force a resize
    
        End While
    

0 个答案:

没有答案