读书人

问个VB.net的label控件的有关问题

发布时间: 2013-01-11 11:57:35 作者: rapoo

问个VB.net的label控件的问题
请教个label控件的问题

怎样让label控件固定在窗口中部

就是我我窗体无论怎么放大缩小 label控件始终在窗体的水平中间

而且label控件也随着字体的变大自己也在变大
[解决办法]
难点是字体大小不能根据标签大小改变,他们单位不同,标签大小倒是可以根据字体大小改变。
[解决办法]


Public Class Form1


Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label1.AutoSize = True
Size_Changed(sender, e)

'这一句可以不要
'AddHandler Label1.FontChanged, AddressOf Size_Changed
AddHandler Label1.SizeChanged, AddressOf Size_Changed
AddHandler Label1.TextChanged, AddressOf Size_Changed
AddHandler Me.SizeChanged, AddressOf Size_Changed

End Sub

Private Sub Size_Changed(sender As Object, e As EventArgs)
Label1.Location = New Drawing.Point((Me.Width - Label1.Width) / 2, (Me.Height - Label1.Height) / 2)
End Sub


End Class

[解决办法]
Label1.Anchor = AnchorStyles.None
[解决办法]
引用:
Visual Basic code?123456789101112131415161718192021Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Label1.AutoSize = True ……


只是水平居中的话,把
Label1.Location = New Drawing.Point((Me.Width - Label1.Width) / 2, (Me.Height - Label1.Height) / 2)
改成下面这句即可
Label1.Location = New Drawing.Point((Me.Width - Label1.Width) / 2, Label1.Top)
[解决办法]
涉及到不按照等比例缩放的问题,你这儿要求不知道是什么,下面的代码根据高度的变化缩放,可以先讲标签的字体设置的稍微大点测试。


Public Class Form1

Dim labsize As Single
Dim formsize As Size

Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize

Dim hc = Me.Height / formsize.Height
Dim wc = Me.Width / formsize.Width

Dim p As Double

' If hc < wc Then
p = labsize * hc


' Else
' p = labsize * wc
' End If

Dim font As New Font(Label1.Font.Name, CSng(p), GraphicsUnit.Point)
Label1.Font = font

Label1.Location = New Point((Me.ClientSize.Width - Label1.Width) \ 2, (Me.ClientSize.Height - Label1.Height) \ 2)

End Sub

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

formsize = Me.Size
labsize = Label1.Font.Size

End Sub

End Class

读书人网 >VB Dotnet

热点推荐