好吧,出于某种原因,这不起作用,但我之前已经完成了。
我正在创建一个刽子手应用程序,我的动态标签根本不会显示。
我写了这段代码:
Dim xLabel As Integer = lblPosition.Location.X
Dim yLabel As Integer = lblPosition.Location.Y
For i As Integer = 0 To film.Length - 1
Dim label1 As New Label
xLabel += 20
label1.Location = New Point(xLabel, yLabel)
label1.Text = "_"
label1.Font = New Drawing.Font("Century Gothic", _
16, _
FontStyle.Bold)
label1.ForeColor() = Color.White
label1.Name = "lblLetter" & i
Me.Controls.Add(label1)
Next
因此,为film
字符串中的每个字符创建一个标签,并以下划线作为文本。 lblPosition
是我基于其他标签位置的标签。
标签未显示。我可以将下划线改为长的,它只会显示最后一个字符。
我的表格当然足够广泛,我还没有名为label1
的标签。
它也可以编译。
编辑:如果我添加边框,这就是标签的样子,但仍然没有文字。
编辑2:字体大小与第一个下划线相同,如果我使用字母,我得到这个(字体大小也减少)
答案 0 :(得分:0)
将label1.AutoSize = True
添加到循环中:
Dim xLabel As Integer = lblPosition.Location.X
Dim yLabel As Integer = lblPosition.Location.Y
For i As Integer = 0 To film.Length - 1
Dim label1 As New Label
xLabel += 25 ' <---- 25 works better with your font size
label1.Location = New Point(xLabel, yLabel)
label1.AutoSize = True ' <---- HERE!
label1.Text = "_"
label1.BorderStyle = BorderStyle.FixedSingle ' <---- Added border for demo
label1.Font = New Drawing.Font("Century Gothic", _
16, _
FontStyle.Bold)
label1.ForeColor() = Color.White
label1.Name = "lblLetter" & i
Me.Controls.Add(label1)
Next
没有AutoSize
:
使用AutoSize
: