我想编辑标签的文字。我有一系列名为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
此代码无效可以有人帮助我吗?
答案 0 :(得分:2)
试试这个
if ta.text = "whatever" then
DirectCast(Me.FindControl("e" & i), Label).Text = ta.text
endif
答案 1 :(得分:0)
这个怎么样......
If ta.text = "whatever" Then
CType(Me.Controls("e" & format(i)), Label).Text = ta.text
End If
答案 2 :(得分:0)
Dim myLabel As Label = CType(Me.Controls("e" & i), Label)
myLabel.Text = ...whatever value you want to put here
答案 3 :(得分:0)
假设i
是一个整数,并且控件不在另一个控件中,则此代码将起作用:
If ta.Text = "whatever" Then
Me.Controls("e" + i.ToString).Text = ta.Text
End If
如果控件位于另一个控件内,则必须使用控件的名称而不是Me
来限定它们。
答案 4 :(得分: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
,后者又可以有另一个链接标签。等等。