Progresbas vullen

Status
Niet open voor verdere reacties.

old Hippy

Gebruiker
Lid geworden
24 mei 2008
Berichten
911
Hi Beste helpers

Ik wil graag dat tijdens het exporteren van een datagrid naar excel een progresbar het verloop hier van laat zien.
omdat dit proces nog al lang is lijkt het mij prettig te zien hoe ver het is.

Iemand die mij op weg kan helpen??????:rolleyes:
 
je export is waarschijnlijk save methode vanuit die interops.excel ..

Je zal een thread of backgroundworker moeten gebruiken , welke worden gezien als een lastig onderwerp van .NET , dus bereid je maar voor.

Omdat je deze waarschijnlijk nu nog niet gebruikt , je form vastslaat tijdens het exporteren en je niets anders kan doen dan wachten. Is een worker thread wel makkelijk om tussentijds te zien of een bepaalde actie is voltooid. (en dus ook voor een progressbar)

Het is niet gemakkelijk uit te leggen. Dus ik raad je aan om dit eens te lezen
 
Beste pizara

Bedankt voor je reactie
ik was er al achtergekomen dat je met een BackgroundWorker moet werken.

en had deze code gevonden dit werkt tot het listboxje is gevuld tot Sequence 100

maar ik moet nu uit zien te vinden hoe inplaats van de listbox mijn save proces vanuit interops.excel kan aan sturen.
misschien een idee ????:)

Code:
Imports System.ComponentModel

Public Class Form1

    Private WithEvents bgw As BackgroundWorker = New BackgroundWorker

    Private Sub bgw_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgw.DoWork
        Dim ListText As String
        For Value As Integer = 0 To 100
            If bgw.CancellationPending Then
                Exit For
            End If
                     ListText = String.Concat("Sequence #", Value)
            bgw.ReportProgress(Value, ListText)
            Threading.Thread.Sleep(100)

            
        Next
    End Sub

    Private Sub bgw_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bgw.ProgressChanged
        ProgressBar1.Value = e.ProgressPercentage
        ListBox1.Items.Add(e.UserState)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button1.Enabled = False
        Button2.Enabled = True
        ListBox1.Items.Clear()
        ProgressBar1.Value = 0
        bgw.WorkerReportsProgress = True
        bgw.WorkerSupportsCancellation = True
        bgw.RunWorkerAsync()
        Me.Cursor = Cursors.WaitCursor
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        bgw.CancelAsync()
    End Sub

    Private Sub bgw_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgw.RunWorkerCompleted
        Button1.Enabled = True
        If Button1.Enabled = True Then
            ProgressBar1.Value = 0
        End If
        Button2.Enabled = False
        Me.Cursor = Cursors.Arrow
    End Sub
   


    Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If ProgressBar1.Value = ProgressBar1.Maximum Then
            ProgressBar1.Value = 0
        End If
        ProgressBar1.PerformStep()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Stop()
    End Sub
End Class 're not going
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan