如何让label 中的文字垂直居中?

解决方案 »

  1.   

    autosize属性设置为true,不就居中了么
      

  2.   

    Private Sub Command1_Click()
    Label1.Caption = "a" & vbCrLf & "b" & vbCrLf & "c"
    End Sub
      

  3.   

    不行啊,size我要自己控制。
    好了,问题解决了
    不过确实没法居中啊
      

  4.   

    Private Sub Form_Load()
    Label1.Alignment = 2
    Label1.Appearance = 0
    Label1.Caption = "现" & vbCrLf & "在" & vbCrLf & "居" & vbCrLf & "中" & vbCrLf & "了"
    End Sub
      

  5.   

    设置Alignment属性就行了,设置成2-Center
      

  6.   

    哦,你是说这样垂直居中啊?
    先Label1.Alignment = 2
    然后计算字体的高度来设置LABEL的高度,或以此计算在文本的前面应该加几个VBCRLF
      

  7.   

    Option ExplicitPrivate Sub LabelText()
    Dim mX As Long, mY As Long, mW As Long, mH As Long, mNH As Long, mTH As Long, mLong As Long
    mX = Label1.Left: mY = Label1.Top: mW = Label1.Width: mH = Label1.Height
    Label1.AutoSize = True
    Label1.AutoSize = False
    mNH = Label1.Height
    mTH = (mH - mNH) \ 2 \ mNH
    Label1.Left = mX: Label1.Top = mY: Label1.Width = mW: Label1.Height = mH
    For mLong = 0 To mTH - 1
    Label1.Caption = vbCrLf & Label1.Caption
    Next
    End SubPrivate Sub Form_Load()
    LabelText
    End Sub有点误差,不过问题不是很大
      

  8.   

    别忘了把Label1.Alignment = 2
      

  9.   

    已经解决了,就是有误差
    不过也奇怪,label怎么连个垂直居中也不支持呢????????????????????
      

  10.   

    我回了3次,不能继续回。我上面的做法有点蠢,应该用TextHeight
    Private Sub Form_Load()
    Label1.Alignment = 2: Label1.Appearance = 0
    Dim mH As Long, mF As Long
    mH = (Label1.Height - TextHeight(Label1.Caption)) \ 2 \ TextHeight(Label1.Caption)
    For mF = 0 To mH - 1
      Label1.Caption = vbCrLf & Label1.Caption
    Next
    End Sub
      

  11.   

    也可以用api函数做
    alignment=2 也是可以的