![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| maxnoskov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
Помогите. Есть главная форма приложения. На ней DataSet. Я заполняю DS из xml файла с помощью WriteXml. Как мне одновременно со считыванием файла открыть окно в котором будет в это время работать progressBar.
|
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
maxnoskov, в чем конкретно вопрос?
Как показать окно?
Или как совместить показ диалога с загрузкой? Тогда нужно будет загрузку сделать в отдельном потоке, а потом вернуть датасет из потока Реального прогресбара у тя не получится, но бегущая строка будет точно А может Лоад? Добавлено @ 13:36 или Read? |
|||
|
||||
| maxnoskov |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
Именно совместить!
Можно пример?
А в чем разница?
Конечно! |
||||||||
|
|||||||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
Разница в том, что, по идее, когда закончится полоска должна закончиться и загрузка данных. Но ReadXML не предоставляет информацию сколько еще осталось (строк, элементов, ...). Значит нельзя рассчитать время окончания, а значит придеться прогонять статусбар в цикле: закончил -- начинай сначала. Могу идею (на реализацию времени нет). 1) Делаешь метод ThreadDo(), в котором создаешь датасет, загружаешь его, а в конце передаешь в главное приложение. 2) Создашь диалог в котором только один прогресбар. Который сразу же запускается и гоняет полоску пока не получит информацию от формы, что датасет передали. 3) Когда нужно загрузить данные --- запускаешь поток. а потом этот диалог Все |
|||
|
||||
| DarkDragon |
|
|||
![]() GradVin ![]() ![]() Профиль Группа: Участник Сообщений: 296 Регистрация: 19.8.2006 Репутация: 3 Всего: 8 |
ivashkanet, делаю работу за тебя
Это сообщение отредактировал(а) DarkDragon - 1.12.2006, 22:10 |
|||
|
||||
| maxnoskov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
Перешел на BackgroundWorker, но реализация та же. Спасибо всем.
|
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
Этот пост преследует цель "чисто похвастаться"
Ну... может еще кому-то пригодится Понадобилось мне сегодня реализовать этот самый прогрессБар. Решил я его сделать с помощью BackgroundWorker. И так хорошо и прозрачно он у меня получился, что я аж залюбовался Это правда VB .Net, но суть-то понятна Значится, из доп компонент: ListBox, Button, ProgressBar и BackgroundWorker
|
|||
|
||||
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
немного не понял.. это ведь бегущая строка просто подучается?
а как реальный прогресс бар сделать? PS и хотелось бы на CS код примера ivashkanet увидеть Это сообщение отредактировал(а) _Dream - 23.2.2007, 19:50 --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 4 Всего: 62 |
Все зависит от конкретной задачи. Однако зачастую "реальный" прогресс бар сделать невозможно по объективным причинам. В таких случаях применяется анимация, в частности бегущая строка, которую и реализовал ivashkanet. А случайно нет трансляторов с VB.NET на C#.NET? |
|||
|
||||
| ivashkanet |
|
||||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
У меня и сделан реальный прогресбар. Вся фишка в том, что здесь я знаю сколько этапов обработки у меня есть. Их будет ровно столько, сколько элементов будет в массиве listOfWorkCentres В начале я вычисляю шаг с которым передвигать прогрессбар
(Выполненная работа = 100 (%), всего шагов listOfWorkCentres.Count) Далее на каждом шаге (с каждым новым рабочим центром) я увеличиваю progress на этот шаг и говорю об этом основной форме
Это в моей ситуации. Но что делать если вся работа состоит из одного тяжелого запроса удаленному сарверу? Тогда реальный прогрессбар (кроме, конечно, было 0, а в конце сразу стало 100) сделать, естественно, нельзя Ввиду отсутствия дома студии, перевести корректно смогу только в понедельник, но если кто-то сделает это за меня я скажу только спасибо Добавлено @ 20:38 Есть, тот же рефлектор --- компилишь VB .Net приложение, а потом дезассемблируешь его под язык C# |
||||||
|
|||||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
Как и обещал, код C#
|
|||
|
||||
| 777Lich777 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 19.12.2010 Репутация: нет Всего: нет |
Клево сделал работу ничего не скажешь, код не рабочий. System.Threading.Thread thr = new System.Threading.ThreadStart (ProcessDo); Thread и ThreadStart - несовместимые типы если привести к одному то ругается на поток. |
||||
|
|||||
| Certain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 18.6.2008 Где: Moscow Репутация: 3 Всего: 4 |
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |