问个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
[解决办法]
只是水平居中的话,把
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