Vb.net 无法使用新关键字更改标签文本

Vb.net 无法使用新关键字更改标签文本,vb.net,Vb.net,我试图用两种方法来更改标签上的文本,第二种方法由于某种原因不起作用。谢谢你的帮助。谢谢 第一种方法: 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 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。通过创建一个全新的标签,你将接管整个工作


希望这有意义。

欢迎来到SO!我认为如果你复习并修改你的问题,你可以提高得到答案的机会。具体来说,如果您解释“第二种方法由于某些原因不起作用”,这会有所帮助。是否有错误?输出与预期有什么不同?您可以跳过大部分内容,只使用行
Label1.Text=“Changed”
@laancelot我知道,我只是想知道为什么第二种方法不起作用。谢谢。@DCTID我在运行这两个代码时没有发现任何错误,但第二个代码不会更改Label1的文本。@VoidLT很抱歉误判了您,它看起来像是新用户的问题之一。我明白你的意思,这是一个很好的问题,非常有帮助。非常感谢。