Обратиться к методам экземпляра класса по имени

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Sector
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 26.10.2004 (Вт) 14:43

Обратиться к методам экземпляра класса по имени

Сообщение Sector » 21.05.2009 (Чт) 16:22

Здравствуйте люди.
Помогите найти простой способ.
На форме находиться несколько экземпляров контрола, например ControlX, включающих в себя несколько экземпляров текстбокса. Например Textbox1 textbox2 ...
Как обратиться к всем экземплярам ControlX к одному текстбоксу зная имя текстбокса. Текстбокс каждый раз разный.
Без перебора и сравнивания имен.

Код: Выделить всё
Private Sub something_change(ByVal sender As Object, ByVal textbox1 As textbox) ' sender один из ControlX, textbox1 какой-то из текстбоксов
        For Each i As ControlX In Form1.Controls
            i.????textbox????.text="Hello"
        Next
    End Sub

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Обратиться к методам экземпляра класса по имени

Сообщение Nord777 » 21.05.2009 (Чт) 16:26

смотри оператор TypeOf
Только всё равно перебор.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Sector
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 26.10.2004 (Вт) 14:43

Re: Обратиться к методам экземпляра класса по имени

Сообщение Sector » 21.05.2009 (Чт) 21:12

Спасибо, за ответ, как то не "по-нетовски" получается, либо перебор, либо много кода.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Обратиться к методам экземпляра класса по имени

Сообщение Nord777 » 21.05.2009 (Чт) 21:15

Спасибо, за ответ, как то не "по-нетовски" получается
В переборе нет ничего плохого. Лично тебя, чем смущает перебор?
Add: Перечитал твой первый пост и понял, что я наверно тебя не понял. Сформулируй задачу поконкретнее.

Add2:
Тебе не это надо?
Код: Выделить всё
   DirectCast(CallByName(Panel1.Controls, "Item", CallType.Get, "TextBox2"), TextBox).Text = "AnyText"
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Sector
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 26.10.2004 (Вт) 14:43

Re: Обратиться к методам экземпляра класса по имени

Сообщение Sector » 22.05.2009 (Пт) 2:29

Спасибо, callbyname то самое, что я и имел ввиду.

В переборе нет ничего плохого. Лично тебя, чем смущает перебор?

В данном конкретном случае , идея такая, что если на какое-то событие принесшее в себе метод экземпляра класса, вызвать этот метод у всех остальных экземпляров того же класса. Перебрать экземпляры класса придется конечно, но не надо перебирать методы сравнивая тот это или не тот. Так как имя метода известно. Я просто не мог вызвать метод по имени. :? Полез в рефлексии в гугол по-извращатся с запросами. А все просто оказывается.

Спасибо за помощь. :D


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

    TopList