.
Anmeldung | Registrieren | Hilfe | Posteingang
Suchen
Home Foren News Member Offers Termine Developer Blogs Knowledge Base

Navigation

Navigationslinks überspringen.
Knowledge Base reduzierenKnowledge Base
Tutorials reduzierenTutorials
Webentwicklung
Cliententwicklung
Datenbankentwicklung
IT Professional
Sharepoint
Sprachspezifisch reduzierenSprachspezifisch
C#
Visual Basic
C++
XAML
SQL
JavaScript
Erfahrungsberichte reduzierenErfahrungsberichte
Entwicklersoftware
Bücher
FAQ Grundlagen

Verknüpfungen

  • Knowledge Base durchsuchen
  • Hilfe zur Knowledge Base
  • RSS Feed
  • Twitter

Vom FileSystemWatcher auf Control zugreifen (ThreadCross)

Wenn man aus einem Thread auf eine Controleigenschaft aus dem Hauptthread zugreifen will (z.B. aus einem Thread auf die "Label1.Text" Eigenschaft) dann muss man die Invoke Methode benutzen und die Zugriffsmethode muss als Delegate deklariert werden.

In dem folgendem Beispiel wird gezeigt wie man aus einem FileSystemWatcher Event auf die Label1.Text Eigenschaft zugreift:


Imports System.IO

Public Class Form1

    Public Delegate Sub ChangeTextDelegate _

   (ByVal What As String)

    Private FSW As New FileSystemWatcher()

 

    'Hier werden die Eigenschaften für das

    'FileSystemWatcher Objekt festgelegt

    Private Sub Form1_Load(ByVal sender As System.Object, _

    ByVal e As System.EventArgs) Handles MyBase.Load

        FSW.Path = "D:\"

        FSW.NotifyFilter = NotifyFilters.DirectoryName

        FSW.IncludeSubdirectories = True

        AddHandler FSW.Renamed, AddressOf OnRenamed

        FSW.EnableRaisingEvents = True

    End Sub

 

    'Das ist das Event für den FileSystemWatcher (Renamed-Event)

    Private Sub OnRenamed(ByVal source As Object, _

    ByVal e As RenamedEventArgs) '(FSW Thread)

 

        'Hier wird über die Invoke Methode ein Zugriff von diesem

        'Thread auf dem Hauptthread erstellt

        Dim Tmp As ChangeTextDelegate = _

        New ChangeTextDelegate(AddressOf ChangeTextSub)

        Label1.Invoke(Tmp, New Object() {e.OldFullPath})

    End Sub

 

    'Das ist die Methode um die Eigenschaft zu verändern

    Private Sub ChangeTextSub(ByVal What As String) '(Hauptthread)

        Label1.Text = What

    End Sub

End Class

von Tim Hartwig, 03.06.2008 zugeordnet zu Cliententwicklung , Visual Basic .

Kommentare

Es sind noch keine Kommentare vorhanden.

Eigener Kommentar

Sie müssen angemeldet sein, um ein Kommentar zu erstellen.
  • Schwierigkeit: Einsteiger
  • Views: 1059
  • Zur Druckversion
  • Artikel von Tim Hartwig

Kick it on dotnet-kicks.de

Artikel

Autor

Kick it!

Wenn ihnen dieser Artikel gefällt, bitte "kicken" sie ihn.

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum