Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 11.10.2012, 20:42   #1
vovik93
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 47
По умолчанию Не выводится текст в Label

Есть некий метод, который заполняет грид данными и это занимает
несколько секунд(так как данных много), естестве но программа
во время этого зависает. И чтоб пользователь не думал что программа
зависла из-за неполадок, я хочу выводить в какой то лейбел что "идет загрузка".
Делаю так: перед вызовом метода заполнения пишу в лейбел текст, а после метода
стираю его, но лейбел так и остается пустым(А если вместо лейбела меседж боксы
то все работает - один выводится перед стартом, второй по за вершению).
Подскажите почему так?

Последний раз редактировалось vovik93; 11.10.2012 в 20:50.
vovik93 вне форума Ответить с цитированием
Старый 11.10.2012, 20:59   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

код в студию!
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 11.10.2012, 21:07   #3
vovik93
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
код в студию!
Код:
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();
            Label1.text = "Loading...";
            //MessageBox.Show("start");

            ReadXML(urlForXml);
            AddDataInGrid();

            timer1.Start();
            Label1.text = "";
            //MessageBox.Show("stop");
        }
vovik93 вне форума Ответить с цитированием
Старый 11.10.2012, 21:56   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Предполагаю 2 варианта:
1) ReadXML(urlForXml); и AddDataInGrid(); выполняются так быстро, что вы не успеваете увидеть надпись
2) ReadXML(urlForXml); AddDataInGrid(); выполняются долго, но надпись на экране не обновляется, т.к. основной поток занят загрузкой XML и добавлением данных в грид.
Решение аналогично вашей другой теме: использовать отдельный поток под загрузку данных
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 12.10.2012, 08:19   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Luuzuk +1

добавлю ещё один вариант...
проверьте такой код:
Код:
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();
            Label1.text = "Loading...";

            Application.DoEvents();

            //MessageBox.Show("start");

            ReadXML(urlForXml);
            AddDataInGrid();

            timer1.Start();
            Label1.text = "";
            //MessageBox.Show("stop");
        }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2012, 13:13   #6
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Создаешь поток BackgroundWorker и можешь в этом же потоке использовать метод this.Invoker для изменения текста в лейбле если твои операции занимают долгое время.
coNsept вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выводится текст парсинга bulldog5293 Работа с сетью в Delphi 0 30.04.2011 17:26
Не выводится текст статьи из БД (PHP,MySQL) Mysqler Помощь студентам 1 19.05.2010 20:26
Текст в Label и cfg фаил. 54rus Помощь студентам 7 27.07.2009 09:38
Текст из label Domoffou Win Api 1 07.01.2008 09:49


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS