日期:2014-05-19  浏览次数:20929 次

如何自动调整Label的高度
Label的宽度是定死的,希望在Text改变是自动调整Label的高度,以保证文本都能显示出来。应该怎么处理?
如果Label不行,有其他好用的控件吗?

------解决方案--------------------
我没有更好的法子,用笨办法吧。

Private Sub Label1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Label1.Paint
Dim RowNumber As Integer
If e.Graphics.MeasureString(Label1.Text, Label1.Font).Width Mod Label1.Width = 0 Then
RowNumber = e.Graphics.MeasureString(Label1.Text, Label1.Font).Width / Label1.Width
Else
RowNumber = e.Graphics.MeasureString(Label1.Text, Label1.Font).Width / Label1.Width + 1
End If
Label1.Height = RowNumber * e.Graphics.MeasureString(Label1.Text, Label1.Font).Height
End Sub