首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

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

2013-01-11 
问个VB.net的label控件的问题请教个label控件的问题怎样让label控件固定在窗口中部就是我我窗体无论怎么放

问个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

热点排行