我正在尝试使用两种方法更改标签上的文本,由于某种原因,第二种方法不起作用。感谢您的帮助。谢谢。
第一种方法:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim lbl As Label
lbl = Label1
With lbl
.Text = "Changed"
End With
End Sub
第二种方法:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim lbl As New Label
With lbl
.Text = "Changed."
End With
Label1 = lbl
End Sub
第二种技术存在一些问题,这就是为什么它不起作用的原因。
首先,新标签没有位置。
第二,新标签不属于表单的控件列表(并且不会绘制)。
第三,旧的“ Label1”仍在窗体的控件中被引用(无论如何它都会隐藏新的控件)。
要使方法2起作用,它必须看起来像这样:
Dim lbl As New Label()
lbl.Text = "Changed"
lbl.Location = Label1.Location
Me.Controls.Add(lbl)
Me.Controls.Remove(Label1)
Label1 = lbl
[如果您想知道为什么它需要这么多的微管理,答案是在第一种方法中,由于您正在使用现有的Label1,因此已经处理了所有这些事情。通过创建一个全新的标签,您可以接管整个工作。
希望这很有道理。
这两种方法都很愚蠢。如果Label1
已经指向您要影响的Label
对象,则只需使用Label1
,即
Label1.Text = "Changed"
如果您有任何正当理由这样做,您肯定没有在问题中对此进行解释。