我放一个标签在窗体中,我想固定它的宽度,但是标签的高度根据标签内容的多少进行变化。想了一些办法不能实现,有没有高手能提出一点思路?谢谢

解决方案 »

  1.   

    autosize=True
    然后当达到宽度时,把现实在标签的字符串换行即可。
    例如:每行只显示4个字符:Option ExplicitPrivate Sub Form_Load()
        With Label1
            .AutoSize = True
            .Caption = "中华人民" & Chr(13) & "共和国"
        End With
    End Sub
      

  2.   

    给你个小例子,自己去举一反三吧。Private Sub Form_Load()
        Label1.AutoSize = True
        Label1 = "1234567890123"End SubPrivate Sub Label1_Change()
        Static f As Boolean
        If f Then f = False: Exit Sub
        For i = 1 To Len(Label1)
            x = x & Mid(Label1, 5 * (i - 1) + 1, 5) & vbCrLf
        Next
        f = True
        Label1.Caption = xEnd Sub
      

  3.   

    自己搞明白了,设置label1.Autosize=True,然后设置label1.WordWrap=true,这样可以在程序中设置label一个固定的宽度,就可以实现自动换行而且高度变化了。这样设置有一点需要注意就是需要把单词或数字用空格或标点尽心分割,否则不会换行。例如“111111111111111111111111111111111111111111111111”写入label不会换行,“1111111111111111111111 11111111111111”这样就会分为两行。