Как я могу ссылаться на динамически именованный элемент управления на UserControl из родительской формы? - PullRequest
0 голосов
/ 08 марта 2019

Как мне ссылаться на динамически именованный элемент управления в UserControl из родительской формы? (В Winforms).

У меня есть одна родительская форма, но она может загрузить любой из примерно 20 или около того UserControls. Мы назовем их ucA, ucB, etc.

Каждый элемент UserControl имеет различное количество текстовых полей, но называется tbA01, tbA02, etc on ucA and tbB01, tbB02, etc on ucB.

Как бы я сослался на значение текстовых полей?

Я не могу ссылаться на имя UserControl напрямую. Я знаю имя UserControl как строку, но, похоже, не могу использовать его как элемент управления. Аналогично с текстовыми полями в UserControl. Я уверен, что могу использовать Control.Find () для имени текстового поля из простой строки. Но это, похоже, не работает, и я предполагаю, что он будет искать только элементы управления в ParentForm, а не набор элементов управления в UserControl. Я предполагаю, что будет метод, использующий TryCast или DirectCast и использующий Control.Find () в аргументах. Но я не нашел решения.

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 10 марта 2019

Спасибо, Джими! Ваш ответ помог мне взглянуть на другой метод в поиске решения. У меня это работает сейчас. Вот что я использовал:

Dim matches() As Control
matches = Me.Controls.Find(TblName, True)
If matches.Length > 0 AndAlso TypeOf matches(0) Is TextBox Then
    Dim tb As TextBox = DirectCast(matches(0), TextBox)
    ...
Endif
...