Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Не могу изменить вручную созданный компонент


Автор: Proger89 22.12.2009, 00:34
Доброго времени суток.
Нужно написать класс который выполняет автогенерацию формы в зависимости от того, данные какого класса, оно должно отображать.
В хотя своей работы этот класс создает объект типа TextBox следующим образом:

Код

            TextBox tb = new TextBox();
            tb.Parent = this;
            // Установка позиции TextBox-а на форме вместе с надписью 
            AllocateNewTB(tb, pi.Name);
            // Добавление компонента на форму
            this.Controls.Add(tb);
            // Добовление в список для кеширования
            tb.TabStop = true;
            tb.TabIndex = _lastTabStop++;


После этого компонент успешно распологаеться на форме. Далее в том же классе, но уже в другом месте я изменяю текст созданного компонента.
Но когда я пишу что-то вроде:
Код

   tb.Text = "123";

то текст в компоненте не меняется, хотя строчка спокойно выполняеться.і
При чем получить значение Text созданного компонента , если его изменил пользователь,  можно.

Помогите пожалуйста, в чем может быть проблема?
Заранее благодарен.

Автор: diadiavova 22.12.2009, 11:14
Я так понимаю, первый фрагмент - это код некоторого метода. Но ведь если переменная tb объявлена внутри метода, то из другого места ты её не увидишь. Тот факт, что компилятор не ругается на строчку
Код

 tb.Text = "123";
говорит о том, что на уровне класса у тебя тоже существует такая же переменная, только это разные переменные, отсюда проблема. Вообще для более точной диагностики проблемы информации маловато.

И кстати вот эти две строки
Код

            tb.Parent = this;
            this.Controls.Add(tb);
делают одно и то же.

Автор: Proger89 23.12.2009, 00:13
to diadiavova:
Ссылка на TextBox береться из списка, так что это один и тот же TextBox.
Спасибо за подсказку.

Проблема уже решена. Допустил ошибку по собственной глупости.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)