0

我想编辑标签的文本。我有一个名为 e1 、 e2 、 e3 、 e4 、e5 等的标签链。我想用一段代码编辑所有这些,如下所示:

if ta.text = "whatever" then 
e(i).text = ta.text 
endif

在这种情况下,“i”是我将用来选择要编辑的标签的变量。这是代码示例:

Form2.E(i).Text = em.Text
Form2.P(i).Text = p.Text
Form2.NS(i).Title = t.Text

此代码不起作用有人可以帮助我吗?

4

5 回答 5

2

尝试这个

if ta.text = "whatever" then 
  DirectCast(Me.FindControl("e" & i), Label).Text = ta.text
endif
于 2013-08-01T06:42:05.677 回答
0
Dim myLabel As Label = CType(Me.Controls("e" & i), Label)
myLabel.Text = ...whatever value you want to put here
于 2013-08-01T07:38:41.313 回答
0

假设i是一个整数,并且控件不在另一个控件中,则此代码将起作用:

    If ta.Text = "whatever" Then
        Me.Controls("e" + i.ToString).Text = ta.Text
    End If

如果控件位于另一个控件中,则必须使用控件名称而不是Me.

于 2013-08-01T09:02:33.093 回答
0

这个怎么样 ...

If ta.text = "whatever" Then 

    CType(Me.Controls("e" & format(i)), Label).Text = ta.text

End If
于 2013-08-01T07:13:31.867 回答
0

我发现做这些事情的最好方法是制作一个专门的控件版本。

LinkedLabel专用控件的快速示例:

Public Class LinkedLabel
    Inherits Label

    Private _nextLabel As Label

    Public Sub New(nextLabel As Label)
        _nextLabel = nextLabel
    End Sub

    ' Default constructor is still needed for the designer view.
    Public Sub New()
        MyBase.New()
    End Sub

    Protected Overrides Sub OnTextChanged(e As EventArgs)
        MyBase.OnTextChanged(e)
        Debug.Print(Text)
        If _nextLabel IsNot Nothing Then
            _nextLabel.Text = "whatever you want"
        End If
    End Sub

End Class

当您更改LinkedLabel实例上的文本时,它也会更改_nextLabel(如果已设置)上的文本。nextLabel可以是标准标签,也LinkedLabel可以是另一个标签,后者又可以有另一个链接标签。等等。

于 2013-08-01T14:54:16.470 回答