Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу изменить вручную созданный компонент 
:(
    Опции темы
Proger89
Дата 22.12.2009, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 13.12.2007

Репутация: нет
Всего: нет



Доброго времени суток.
Нужно написать класс который выполняет автогенерацию формы в зависимости от того, данные какого класса, оно должно отображать.
В хотя своей работы этот класс создает объект типа 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 созданного компонента , если его изменил пользователь,  можно.

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


Это сообщение отредактировал(а) Proger89 - 22.12.2009, 00:47
PM   Вверх
diadiavova
Дата 22.12.2009, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



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

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

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

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Proger89
Дата 23.12.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 13.12.2007

Репутация: нет
Всего: нет



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

Проблема уже решена. Допустил ошибку по собственной глупости.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0618 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.