vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Delegates 
Autor: LarsThorwald
Datum: 19.04.06 18:24

Du mußt mehrer Sachen beachten,

1 Du mußt Du den Parameter WorkerReportsProgress auf True setzen.
2 Du kannst nur in dem Ereignis ProgressChanged auf andere Komponenten des Formulars zugreifen (diese Sachen wurden ja nicht von deinem Thread kreiert und gestartet)

Hier mal ein Beispiel.
Du benötigst dafür e:
Textbox (vergiß nicht, die Textbox auf "Multiline = True" zu setzen
Button
Backgroundworke
Progressbar

Die Namen habe ich mal so übernommen, wie diese beim hinzufügen der Komponenten vergeben worden sind

Public Class Form1
 
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
     System.EventArgs) Handles Button1.Click
      '*** Die Werte können auch im Eigenschaftsfenster eingestellt werden
      BackgroundWorker1.WorkerReportsProgress = True 'Werte können ausgegeben 
      ' werden
 
      'Bei einem BackgroundWorker1.CancelAsync wird der BackgroundWorker1 
      ' beendet
      BackgroundWorker1.WorkerSupportsCancellation = True 'Ein abbrechen 
      ' erlauben
      '*****
 
 
      BackgroundWorker1.RunWorkerAsync() 'Backgroundworker starten
   End Sub
 
   Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As _
     System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
      'In diesem Abschnitt wird die Arbeit vollbracht ;-)
 
      Dim prozent As Int32
      Dim a As Int32 = 0
      Dim ende As Int32 = 1000
      For a = 0 To ende
         If a Mod 2 = 0 Then
            prozent = CInt(a * 100 / ende)
 
            'Im ersten Parameter wird die Prozentzahl übergeben und beim 
            ' zweiten alles andere,
            'was man nacher auswerten möchte (Strings, Array usw.)
            BackgroundWorker1.ReportProgress(prozent, a)
         End If
      Next
   End Sub
 
   Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal _
     e As System.ComponentModel.ProgressChangedEventArgs) Handles _
     BackgroundWorker1.ProgressChanged
      'Ausgabe der Ergebniss
      Dim prozent As String = e.ProgressPercentage
      Dim meldung As String = CType(e.UserState, String)
 
      TextBox1.Text += meldung
      ProgressBar1.Value = prozent
   End Sub
 
 
   Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, _
     ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles _
     BackgroundWorker1.RunWorkerCompleted
      'Hier kommt der Code rein, wenn der BackgroundWorker1_DoWork seine Arbeit 
      ' erledigt hat
      MsgBox("Soderle, Feierabend für heute :-)")
 
   End Sub
End Class
Gruß
Lars

Visual Basic Express 2010, C# Express 2010
Intel? i7 Core 920@2.63 Ghz, 6 GByte DDR3, 1024 MB ATI? Radeon? 5870, Windows 7 Prof. 64 Bit
Gibson SG 61' Reissue ; Ibanez Prestige RG 2550 E, Marshall Valvestate VS100 + Modell Vs412 (4 x 12''), Cubase Studio

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Delegates991Iced-T19.04.06 16:17
Re: Delegates679Iced-T19.04.06 16:47
Re: Delegates602ModeratorDaveS19.04.06 17:14
Re: Delegates639Iced-T19.04.06 17:18
Re: Delegates632LarsThorwald19.04.06 17:50
Re: Delegates626Iced-T19.04.06 17:55
Re: Delegates663LarsThorwald19.04.06 18:24
Re: Delegates550Iced-T19.04.06 18:46
Re: Delegates583LarsThorwald19.04.06 23:13
Re: Delegates627Iced-T19.04.06 18:51
Re: Delegates605Iced-T19.04.06 19:41
Re: Delegates567UR17.07.06 10:50

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel