Statusmeldung aus Klasse an Label in Form übergeben?

29/04/2009 - 11:42 von UweK | Report spam
Hallo Leute,

ich habe eine kleine Anwendung in VS 2008, VB.NET für intelligente Geràte
geschrieben, die je nach Button-Click eine GPRS-Verbindung auf- bzw. abbaut.
Das funktioniert auch soweit, bis auf die Rückgabe der wechselnden Stati,
die ich in einem Label anzeigen möchte.

Folgendes möchte ich realisieren, komme aber nicht wirklich weiter.

In meiner Anwendung verweise ich auf eine Klasse, die ich in eine DLL
ausgelagert
habe. In dieser Klasse wird eine GPRS-Verbindung auf- bzw. abgebaut.
Nun möchte ich, wenn der Status in der Klasse wechselt, eine entsprechende
Meldung zurück an ein Label auf der Form, in meiner Anwendung senden, damit
diese dort angezeigt wird.

Wie kann ich das realisieren?

Vielen Dank im Voraus für Eure Hilfe!

Gruß,
Uwe.

Nachfolgend noch der Code aus der Klasse:

Namespace GPRS
Public Class Verbindung
Dim Status As String = ""
Dim conManager As New ConnectionManager

Public Sub New()

AddHandler conManager.ConnectionStateChanged, AddressOf
conManagerStatus

End Sub

Public Sub Herstellen()
conManager.Connect()
End Sub

Public Sub Trennen()
conManager.RequestDisconnect()
End Sub

Private Sub conManagerStatus(ByVal quelle As Object, ByVal
neuerStatus As ConnectionStatus)

'Die nachfolgenden Stati möchte ich in der Form meiner
Anwendung, in einem
'Label anzeigen, sobald der entsprechende Status wechselt.

Select Case neuerStatus
Case ConnectionStatus.AuthenticationFailed
Status = "Authentifizierung fehlgeschlagen!"
Case ConnectionStatus.Connected
Status = "Verbindung hergestellt."
Case ConnectionStatus.ConnectionCancelled
Status = "Verbindung wurde abgebrochen!"
Case ConnectionStatus.ConnectionDisabled
Status = "Netzwerkdienst (GPRS/EDGE/UMTS/HSDPA) ist
nicht verfügbar!"
Case ConnectionStatus.ConnectionFailed,
ConnectionStatus.ConnectionLinkFailed, ConnectionStatus.ExclusiveConflict,
ConnectionStatus.NoPathToDestination, ConnectionStatus.NoResources,
ConnectionStatus.Suspended, ConnectionStatus.Unknown
Status = "Fehler beim Verbindungsaufbau!"
Case ConnectionStatus.Disconnected
Status = "Verbindung wurde getrennt."
Case ConnectionStatus.PhoneOff
Status = "Telefonfunktion ist ausgeschaltet!"
Case ConnectionStatus.WaitingConnection
Status = "Verbindung wird aufgebaut..."
Case ConnectionStatus.WaitingConnectionAbort,
ConnectionStatus.WaitingDisconnection
Status = "Verbindung wird abgebaut..."
Case ConnectionStatus.WaitingForNetwork,
ConnectionStatus.WaitingForPath
Status = "Kein Netzwerk verfügbar..."
Case ConnectionStatus.WaitingForPhone,
ConnectionStatus.WaitingForResource
Status = "Die Leitung ist belegt!"
Case Else
Status = "Undefinierter Fehler (" & neuerStatus & ")"
End Select
Beep()

End Sub

End Class

End Namespace
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
29/04/2009 - 14:48 | Warnen spam
Hallo Uwe,

"UweK" schrieb:

habe. In dieser Klasse wird eine GPRS-Verbindung auf- bzw. abgebaut.
Nun möchte ich, wenn der Status in der Klasse wechselt, eine entsprechende
Meldung zurà¼ck an ein Label auf der Form, in meiner Anwendung senden, damit
diese dort angezeigt wird.



dafür gibts Events.



Public Class Verbindung

Public Event StateChanged( ByVal NewState As String )

Sub Irgendwas()

...

RaiseEvent StateChanged( "Hallo" )

End Sub

End Class



In deiner Form kannst Du die Verbindung dann "WithEvents" deklarieren und
einen EventHandler einbauen.



Protected WithEvents Connection As Verbindung

Protected Sub Connection_StateChanged( ByVal NewState As String ) Handles Connection.StateChanged

...

End Sub



Es gibt noch ein paar Feinheiten zu beachten, das sollte dir aber den Weg
schonmal grundlegend zeigen.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen