vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 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 - Ein- und Umsteiger
Re: Auf Events eines Objektes innerhalb einer Klasse reagieren 
Autor: keco
Datum: 11.01.12 21:46

Gehen wir davon aus, du hast eine Klasse, die so aussieht:
Public Class MyDevice
 
    ''' <summary>
    ''' Die Methode, die beim Auslösen des DeviceConnected-Ereignis aufgerufen 
    ' wird.
    ''' </summary>
    ''' <remarks></remarks>
    Public Delegate Sub DeviceConnectedEventHandler(sender As Object, e As _
      System.EventArgs)
 
    ''' <summary>
    ''' Tritt ein, wenn eine Verbindung mit dem Gerät hergestellt wurde.
    ''' </summary>
    ''' <remarks></remarks>
    Public Event DeviceConnected As DeviceConnectedEventHandler
 
    Protected Overridable Sub OnDeviceConnected(e As System.EventArgs)
        RaiseEvent DeviceConnected(Me, e)
    End Sub
 
    Public Sub Connect()
        Call OnDeviceConnected(New System.EventArgs)
    End Sub
 
End Class
Das könnte die Klasse für dein USBStick sein. So in etwa sieht die allgemein Struktur einer Klasse aus, wenn du darin Events deklarieren möchtest. Zunächst gibt es einen Delegate, der dieses Ereignis behandeln soll und das Event, welches vom Typ dieses Delegaten ist. Die beiden in Kombination verarbeiten dann das Ereginis und rufen die Methode auf, die du angibst. Dann gibt es typischerweise eine Overridable-Methode, die von der Bezeichnung her immer mit "On" beginnt und dann den Namen des zu verarbeitenden Ereignisses erhält. Diese kann später in abgeleiteten Klassen überschrieben werden. Die Connect-Methode soll dabei dieses Ereignis auslösen.

In deiner Form1 könntest du dann folgenden Code haben:
    Private WithEvents usbDevice As New MyDevice
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
      Handles Button1.Click
        usbDevice.Connect()
    End Sub
 
    Private Sub MyDevice_Connected(sender As Object, e As System.EventArgs) _
      Handles usbDevice.DeviceConnected
        Debug.WriteLine("Device connected")
    End Sub
Wenn du das Feld vom Typ MyDevice mit "WithEvents" deklarierst, dann kannst du die Ereginisse ganz einfach behandeln, indem du bei der Methode "Handles" anfügst und dort das Event der Variable wählst. Die Signatur der Methode muss dabei mit der des Delegaten aus der Klasse MyDevice übereinstimmen. Über den Button soll inefach nur die Connect-Methode aufgerufen werden. Dort sollte dann das Event ausgelöst werden und dir wird im DirektFenster in Visual Studio "Device connected" angezeigt.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Auf Events eines Objektes innerhalb einer Klasse reagieren1.027hratze11.01.12 21:05
Re: Auf Events eines Objektes innerhalb einer Klasse reagier...748keco11.01.12 21:46

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