Как ссылаться на элемент управления из модуля? - PullRequest
0 голосов
/ 30 января 2010

Прости меня за название, я понятия не имею, как это называется.

У меня настроена база данных MS Access с полем Period, которое имеет значения 1, 2, 3, 4 или 5. Я получаю эти значения, используя соединение с базой данных, и я хотел бы сослаться на конкретный элемент управления на основе на какой период был взят из базы данных.

Вот пример кода, псевдо, конечно.

TextBox(dr(3)).Text = dr(0)

dr(3) содержит точку, а dr (0) - содержимое, которое я хотел бы поместить в текстовое поле. В моей форме есть следующие текстовые поля: TextBox1, TextBox2, TextBox3, TextBox4 и TextBox5.

Так что, если dr(3) содержит 2, я бы хотел сослаться на TextBox2.

Надеюсь, я дал понять, любая помощь будет принята с благодарностью, спасибо. :)

Ответы [ 2 ]

0 голосов
/ 30 января 2010

Я немного заржавел в VBA, но вы, вероятно, хотите использовать управляющий массив. Когда элемент управления настроен как массив элементов управления, вы можете индексировать этот массив с помощью dr (3).

0 голосов
/ 30 января 2010

Я предполагаю, что ваши текстовые поля находятся на одном и том же элементе управления (т. Е. У них один и тот же родительский объект). Вы можете использовать:

Dim txtbox as TextBox = CType(parentControl.FindControl("TextBox" & dr(3).ToString()), TextBox)
txtBox.Text = dr(0)

Редактировать: для групповой коробки

For each ctrl as Control in myGB.Controls
    If ctrl.ID = "TextBox" & dr(3).ToString() Then
        CType(ctrl, TextBox).Text = dr(0)
        'EDIT: add exit to stop iteration once the textbox is found
        Exit For  
    End If
Next 
...