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

この種のことを行う最善の方法は、特殊なバージョンのコントロールを作成することです。

特殊な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 に答える
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

iが整数で、コントロールが別のコントロール内にないと仮定すると、このコードは機能します。

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

コントロールが別のコントロール内にある場合は、. の代わりにコントロールの名前でそれらを修飾する必要がありMeます。

于 2013-08-01T09:02:33.093 に答える