感谢你给这个一次性。
设置:
现实:
当我在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