как вставить характер в имя объекта? - PullRequest
0 голосов
/ 18 февраля 2019

есть ли способ вставить символ, такой как 0, 1 и 2, в имя текстового поля, так как у меня есть текстовое поле с именем TB_Result0, TB_Result1 и TB_Result2?

num(counter) = "TB_Result" & counter & ".text"

Я могу это сделатьвместо этого:

    num(0) = TB_Result0.Text
    num(1) = TB_Result1.Text
    num(2) = TB_Result2.Text

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Предполагая VB.Net, вы можете искать элемент управления, который найдет его независимо от того, насколько далеко он вложен в контейнеры, кроме самой формы:

For i As Integer = 0 To 2
    Dim ctl As Control = Me.Controls.Find("TB_Result" & i, True).FirstOrDefault
    If Not IsNothing(ctl) Then
        num(i) = ctl.Text
    End If
Next

Найти функция будет рекурсивно искать во вложенных контейнерах в поисках совпадений.Он возвращает массив совпадений, поскольку возможно иметь более одного элемента управления с одинаковым именем (обычно из-за динамических элементов управления, создаваемых во время выполнения).Часть FirstOrDefault дает вам либо первый элемент в возвращаемом массиве, либо значение по умолчанию, которое в этом случае будет Nothing.И наконец, если «ctl» - это не Nothing, тогда у нас есть совпадение и мы что-то с ним сделаем.

0 голосов
/ 18 февраля 2019

Как то так может работать

    For i = 0 To 2
        num (i) = Me.Controls("TB_Result" & i)
    Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...