Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Слишком быстро работает Добавлено: 20.01.10 18:32  

Автор вопроса:  ЛеШий
У меня необычная ситуация: ProgressBar не успевает за кодом! Код уже выполнился, а ползунок еще до конца не дополз (Value уже равно Maximum)...
Есть ли способ заставить форму подождать ProgressBar?

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 ЛеШий



Вопросов: 21
Ответов: 41
 Профиль | | #1 Добавлено: 20.01.10 18:35
забыл: ОС Vista и VB2008

Ответить

Номер ответа: 2
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #2
Добавлено: 20.01.10 19:53
Поставь после выполнения кода
  1. System.Threading.Thread.Sleep(1000)

Ответить

Номер ответа: 3
Автор ответа:
 ЛеШий



Вопросов: 21
Ответов: 41
 Профиль | | #3 Добавлено: 20.01.10 23:10
ProgressBar застывает где-то на середине...
причем, если в конце вставить MsgBox, то можно увидеть, как ProgressBar доходит до конца уже после появления сообщения на экране...
Такой эффект только на Висте, на ХР доходит до конца...

Ответить

Номер ответа: 4
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #4
Добавлено: 21.01.10 09:42
Покажи алгоритм, который твой прогресс бар носилует.

Ответить

Номер ответа: 5
Автор ответа:
 ЛеШий



Вопросов: 21
Ответов: 41
 Профиль | | #5 Добавлено: 22.01.10 14:17
Смысл вот такой:
  1.  
  2. Public Sub DoSomething()
  3.  
  4. ProgressBar.Value = 0
  5. ProgressBar.Maximum = Count
  6.  
  7. For i = 0 To Count
  8. ProgressBar1.Value = PerformStep
  9. Select Case
  10. ...
  11. End Select
  12. Next
  13.  
  14. End Sub

Ответить

Номер ответа: 6
Автор ответа:
 ЛеШий



Вопросов: 21
Ответов: 41
 Профиль | | #6 Добавлено: 22.01.10 14:19
Блин, не могу изменить!
Строчку 8 следует понимать так:
  1. ProgressBar1.PerformStep()


В свойствах самого ProgressBar значение Step равно 1.

Ответить

Номер ответа: 7
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #7
Добавлено: 22.01.10 14:27
  1. Public Sub DoSomething()
  2.  
  3. ProgressBar.Value = 0
  4. ProgressBar.Maximum = Count
  5.  
  6. For i = 0 To Count
  7. ProgressBar1.Value = PerformStep
  8. Select Case
  9. ...
  10. End Select
  11.  
  12. Next
  13. For j As Long = 0 To 1000
  14. System.Threading.Thread.Sleep(1)
  15. ProgressBar.Refresh()
  16. Next j
  17. End Sub

?

Ответить

Номер ответа: 8
Автор ответа:
 ЛеШий



Вопросов: 21
Ответов: 41
 Профиль | | #8 Добавлено: 23.01.10 11:21
Неа - просто программа зависает на указанное время, причем прогресс бар тоже не двигается! Это беда только Висты! Если в свойствах проекта выключить интерфейс ХР, то прогресс бар не хулиганичает.

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 25.01.10 06:47
Дело в том что прогрес-бар в висте изменяет значение не моментально, а постепенно, с анимацией. У тебя эта анимация не успевает выполниться до того как завершится код.
Как с этим бороться, мне бы было тоже интересно взглянуть.

Ответить

Номер ответа: 10
Автор ответа:
 ЛеШий



Вопросов: 21
Ответов: 41
 Профиль | | #10 Добавлено: 25.01.10 15:48
Именно!
Было бы логично добавить функцию ожидания завершения анимации ПрогрессБара...

Ответить

Номер ответа: 11
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #11 Добавлено: 25.01.10 23:06
Или функцию ожидания прозрения :) и понимания, что виста унылое гов.. и что семерка уделала её ещё в бэтте.

Ответить

Номер ответа: 12
Автор ответа:
 s12



Вопросов: 24
Ответов: 363
 Профиль | | #12 Добавлено: 26.01.10 23:24
Smith
Не скажи... w7(7600 сборка)+vs2010 та же фигня с прогрессом, уже как то смирился, с тем что он иногда не успевает, не самое смертельное что бывает в жизни :)
так что ненада на висту незаслуженно гнать, хоть она и в самом деле жуткое гав..

Ответить

Номер ответа: 13
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #13 Добавлено: 27.01.10 14:00
Самже говоришь виста жуткое г., или ты тоже незаслуженно гонишь?
В семерке тоже прогресс анимированный, у меня он хоть и очень быстро, но проходит от начала и до конца.
Надож понимать, что такая красота сделана только для красоты, а не как эталон точности.

Ответить

Номер ответа: 14
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #14 Добавлено: 27.01.10 15:45
В Windows 7 прогресс бар имеет тот же недостаток что и в Vista, это и пытаются тебе объяснить

Ответить

Номер ответа: 15
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #15 Добавлено: 27.01.10 16:18
Тут все просто... наверняка отрисовка происходит в ассинхронном режиме .. отсюда и запаздывание..
Если это настолько критично то написать подобный контрол - 20-30 минут времени.. Если уж очень хочется чтоб все было синхронно, то я думаю можно потратить пол часика лишних ..

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам