vb中,如何使label 在程序窗体中水平居中与垂直居中?

vb中,如何使label 在程序窗体中水平居中与垂直居中?,第1张

水平居中left=(ScaleWidth-label1.Width)/2

垂直居中top=(ScaleHeight-label1.Height)/2

Scale是整个窗体的坐标。

如果汪宴是开始就执行放困拦银在form_load()中

如果是命令按钮执行衡冲放在command1_click()中

在Vb中如text和label控件是没有垂直居中功能的,但是可以变通就是给文字加空行。

'加一个 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

<style>

.labelstyle{padding:10px 0 10px 0}

</style>

<asp:Label

CssClass="labelstyle"

Runat="server" />

这样就能用CSS控制label的文本样式银搜了..这里使用padding可以在模拟知搏闹出垂直居中的效果. 10px 可以根据你的label高度调整!

希望能帮到搭罩你!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12491225.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存