在面板内创建标签时,文本将被截断为VisualBasic

时间:2013-10-13 10:29:41

标签: vb.net visual-studio-2013

我希望能够动态创建一个带有标签的面板,但标签的表现并不像我预期的那样,它大部分都是关闭的。

创建面板然后在面板内创建标签时,文本显示不正确。任何人都知道如何解决它?

应该做的是使用newpanel()sub

创建一个带有文本的面板
Dim timetable(5, 5) As String

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.Width = (74 * 5) - 3
    Me.Height = My.Computer.Screen.Bounds.Size.Height
    Me.Top = My.Computer.Screen.Bounds.Top
    Me.Left = My.Computer.Screen.Bounds.Right - Me.Width
    GetTimetable()
End Sub





Private Sub newpanel(colour As Color, textT As String)
    Dim Npan As New Panel
    Npan.Top = 0
    Npan.Left = 0
    Npan.Width = Me.Width
    Npan.Height = 64
    Npan.BackColor = colour
    Dim NpanT As New Label
    NpanT.Parent = Npan

    NpanT.Text = textT

    Npan.Controls.Add(NpanT)

    Me.Controls.Add(Npan)


End Sub

Private Sub GetTimetable()
    'Dim path As String = My.Computer.FileSystem.SpecialDirectories.Desktop + "\Timetable"
    newpanel(Color.Aqua, "this is a test! test testtesttest test test test")
End Sub

1 个答案:

答案 0 :(得分:0)

查看Label.AutoSize属性的MSDN页面,如上所述,设置设计器中标签AutoSize属性默认为true, false < / strong>在代码中创建。

从上面链接:

  

使用设计器添加到表单时,默认值为true。从代码实例化时,默认值为false。

因此,您需要将newpanel方法更改为:

Private Sub newpanel(colour As Color, textT As String)
    Dim Npan As New Panel
    Npan.Top = 0
    Npan.Left = 0
    Npan.Width = Me.Width
    Npan.Height = 64
    Npan.BackColor = colour
    Dim NpanT As New Label
    NpanT.Parent = Npan

    NpanT.Text = textT
    NpanT.AutoSize = True  'Enables Auto sizing
    Npan.Controls.Add(NpanT)
    Me.Controls.Add(Npan)
End Sub