Я искал два часа, здесь, на Stackoverflow и на других форумах. Но я не могу найти решение своей проблемы. Я должен иметь возможность изменять свойства объекта, имя которого я не знаю. Теперь я попытаюсь объяснить лучше:
Пользователь перетаскивает некоторые файлы в форме, и я получаю в массиве () все пути перетаскиваемых файлов. Для каждого пути в файлах () я добавляю на панель пользовательский контроль, который является интерфейсом загрузчика. (Мое приложение это своего рода загрузчик). Хорошо, представьте, что пользователь перетащил 4 файла, у меня есть 4 различных пользовательских элемента управления с именами «Uploader1», «Uploader2», «Uploader3» и «Uploader4». Мне нужно изменить текст метки в загрузчике1, но я не могу написать:
Uploader1.LabelExample.Text = "Example"
Потому что его не существует! (Пока нет!) Так что я попробовал этот метод.
Dim UploadCounter as Integer = 1
Dim CurrentUploader = CType(Panel.Controls("Uploader" & UploaderCounter.ToString), UploadBanner)
CurrentUploader.LabelExample.Text = "Example"
Я пишу то же самое с DirectCast и TryCast, но ничего. Я также пытаюсь:
For Each Uploader With{.Name = "Uploader1"} as UploaderControl in Panel.Controls
Uploader.LabelExample.Text = "Example"
Next
Я везде искал "преобразовать строку в объект в vb. net", но я не могу найти ничего, что работает! Все они возвращают «System.NullReferenceException:« Ссылка на объект не установлена для экземпляра объекта. »
Извините за мой плохой плохой английский sh, спасибо за все, что мне поможет! нужно действительно!