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

问题描述 投票:0回答:2

我正在尝试使用两种方法更改标签上的文本,由于某种原因,第二种方法不起作用。感谢您的帮助。谢谢。

第一种方法:

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
vb.net
2个回答
0
投票

第二种技术存在一些问题,这就是为什么它不起作用的原因。

首先,新标签没有位置。

第二,新标签不属于表单的控件列表(并且不会绘制)。

第三,旧的“ 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,因此已经处理了所有这些事情。通过创建一个全新的标签,您可以接管整个工作。

希望这很有道理。


0
投票

这两种方法都很愚蠢。如果Label1已经指向您要影响的Label对象,则只需使用Label1,即

Label1.Text = "Changed"

如果您有任何正当理由这样做,您肯定没有在问题中对此进行解释。

© www.soinside.com 2019 - 2024. All rights reserved.