html中label文本垂直居中,如何在VB中实现label中的文字垂直方向居中?

在Vb中如text和label控件是没有垂直居中功能的。

但是可以变通就是给文字加空行。

下面的是从百度贴吧上面引用来的:

但是他并没有说明要将text的mutiline属性设置为true,否则是不行的。

'加一个 Text1 一个 Command1

Dim aa As String, i As Integer, jj As Integer, maxline As Integer, LineCnt As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Const EM_GETLINECOUNT = &HBA

Private Sub Form_Load()

'窗体与Command1居中

Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2

Command1.Move (Me.Width - Command1.Width) \ 2, Text1.Height + Text1.Top + 200

Command1.Caption = "居中显示"

Text1.Alignment = 2 'TextBox 水平居中显示

aa = "Attn:楼主"

aa = aa & Chr(13) & Chr(10)

aa = aa & "呵呵你的问题都好奇怪,但也让我学了不少!"

aa = aa & Chr(13) & Chr(10)

aa = aa & "我也想不出其它的好方法"

aa = aa & Chr(13) & Chr(10)

aa = aa & "你认为这样行吗?"

Text1.Text = aa

End Sub

Private Sub Command1_Click()

LineCnt = TextBoxLineCnt(Text1)

'每增加一行加上180,当然是以默认的字体大小而言

maxline = Text1.Height \ 180 '计算textbox能装下几行

jj = (maxline - LineCnt) \ 2 '垂直居中,(textbox总行数-Text1的总行数)整除2

For i = 1 To jj '装上几行空白

Text1.Text = Chr(13) & Chr(10) & Text1.Text

Next i

MsgBox "总共有" & CStr(LineCnt) & "行文字,看看垂直居中了吗?"

End Sub

Public Function TextBoxLineCnt(ctl As TextBox) As Long '计算总行数的函数

TextBoxLineCnt = SendMessage(ctl.hwnd, EM_GETLINECOUNT, 0, 0)

End Function

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值