Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Progressbar в Visual Basic 2010 (http://forum.oszone.net/showthread.php?t=219268)

neo21 30-10-2011 12:14 1784836

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 1784869

Завтра выложу проект на С#, как я это делаю. Перевести на VB, думаю, не составит труда?

LilLoco 30-10-2011 13:54 1784903

Цитата:

Цитата neo21
Как в прогресс бар вставить код и выполнять его на протяжении диапазона индикатора »

Если вы имеете ввиду под этим, отображение хода выполнения какой - либо функции, то как вариант можно сделать так:

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 1784969

Решил свою задачу с помощью
Код:

ProgressBar1.Value += 1

Delirium 30-10-2011 16:29 1785051

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


Время: 18:18.

Время: 18:18.
© OSzone.net 2001-