PDA

Показать полную графическую версию : [решено] Progressbar в Visual Basic 2010


neo21
30-10-2011, 12:14
Как в прогресс бар вставить код и выполнять его на протяжении диапазона индикатора

Прогресс бар:

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, думаю, не составит труда?

LilLoco
30-10-2011, 13:54
Как в прогресс бар вставить код и выполнять его на протяжении диапазона индикатора »
Если вы имеете ввиду под этим, отображение хода выполнения какой - либо функции, то как вариант можно сделать так:

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, при помощи делегатов, обновлять позицию бара прямо из потока...

neo21
30-10-2011, 14:52
Решил свою задачу с помощью ProgressBar1.Value += 1

Delirium
30-10-2011, 16:29
neo21, в таком случае можно делать только одну задачу и то не параллельно с основной. Если же требуется отображать прогресс и параллельно выполнять какие то действия, то данный способ надо усовершенствовать :) Но, я думаю, ты скоро до этого дойдешь и вернешься к этому вопросу :)




© OSzone.net 2001-2012