Показать полную графическую версию : [решено] Progressbar в Visual Basic 2010
Как в прогресс бар вставить код и выполнять его на протяжении диапазона индикатора
Прогресс бар:
Public Class Form1
Private Property time As Object
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(1)
If ProgressBar1.Value = ProgressBar1.Maximum Then
Timer1.Stop()
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Start()
End Sub
End Class
Delirium
30-10-2011, 13:20
Завтра выложу проект на С#, как я это делаю. Перевести на VB, думаю, не составит труда?
Как в прогресс бар вставить код и выполнять его на протяжении диапазона индикатора »
Если вы имеете ввиду под этим, отображение хода выполнения какой - либо функции, то как вариант можно сделать так:
1. Создаем функцию, запускаемую в отдельном потоке.
2. В классе добавляем поле : public static int PBValue.
3. Во теле функции выполнения потока рассчитываем позицию бара
this.PBValue = значение;
4. Вешаем на событие (например нажатие кнопки) запуск потока и это (на C#, на VB переведете)
Thread th = new Thread(функция);
th.Start();
while (th.IsAlive)
{
progressBar1.Value = ИмяКласса.PBValue;
Application.DoEvents();
}
Если же вам нужно отображать ход выполнения одной задачи и при этом, в то же время выполнять другую задачу, то вместо 4го пункта нужно в пункте 3, при помощи делегатов, обновлять позицию бара прямо из потока...
Решил свою задачу с помощью ProgressBar1.Value += 1
Delirium
30-10-2011, 16:29
neo21, в таком случае можно делать только одну задачу и то не параллельно с основной. Если же требуется отображать прогресс и параллельно выполнять какие то действия, то данный способ надо усовершенствовать :) Но, я думаю, ты скоро до этого дойдешь и вернешься к этому вопросу :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.