vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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
Mit Events umgehen?! 
Autor: Akaiah
Datum: 24.06.10 14:39

Hallo,

ich bin ja erst vor kurzem auf .Net umgestiegen und habe jetzt die Events entdeckt. Leider habe ich da im Moment massive Probleme - vielleicht kann mir jemand einene Tipp geben.
Es geht dabei um ein konkretes Beispiel - ich kämpfe noch mit einer TAPI Schnittstelle und verwende von JulMar eben die DLL.

Jetzt ist es so, dass man zuerst einen TAPI Manager initialisieren muß. Dieser hat dann ein Event das heißt "CallStateChanged". Sobald sich eben beim Anruf etwas ändert (Läuten, Abheben, Auflegen...) sollte er das eben auslösen.

Anbei ein Auszug aus meinem Code...

Imports JulMar.Atapi
 
Public Class frmTapi
    WithEvents myTapi As JulMar.Atapi.TapiManager
    Dim myLine As JulMar.Atapi.TapiLine
    Dim myCall As JulMar.Atapi.TapiCall
 
    Private Sub frmEinstellungen_Tapi_Load(ByVal sender As System.Object, ByVal _
      e As System.EventArgs) Handles MyBase.Load
        myTapi = New TapiManager("Choice")
 
        AddHandler myTapi.CallStateChanged, AddressOf myCallState
 
        Try
            myTapi.Initialize()
            myLine = myTapi.GetLineByName(My.Settings.setTapileitung, True)
            myLine.Open(MediaModes.All)
        Catch ex As Exception
 
        End Try
    End Sub
 
    Private Sub myCallState(ByVal sender As Object, ByVal e As _
      CallStateEventArgs) Handles myTapi.CallStateChanged
        Select Case e.CallState
            Case CallState.Busy
                labStatus.Text = "Teilnehmer besetzt."
            Case CallState.Connected
                labStatus.Text = "Verbunden"
            Case CallState.Dialing
                labStatus.Text = "Nummer wird gewählt..."
            Case CallState.Disconnected
                labStatus.Text = ""
            Case CallState.Idle
                labStatus.Text = ""
            Case CallState.Ringback
                labStatus.Text = "Läutet..."
            Case CallState.Proceeding
                labStatus.Text = "Anruf in Arbeit..."
        End Select
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
 
        Me.Close()
 
    End Sub
End Class
Ich schreibe eben den Status in ein Label - das klappt auch wunderbar! Wenn ich aber das Fenster schliessen will mit Me.Close und/oder danch nochmals öffne (es wird also alles neu initialisiert), dann erhalte ich einen Fehler...

"System.InvalidOperationException: Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement labStatus erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."

Kann mir vielleicht jemand dazu sagen, was ich falsch mache? Muss ich da ein neues Event erstellen oder es ganz anders behandeln? Weiß gar nicht wo ich mit der Suche beginnen soll...

Danke für die Hilfe!!

LG
Akaiah
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mit Events umgehen?!3.615Akaiah24.06.10 14:39
Re: Mit Events umgehen?!2.547ModeratorFZelle24.06.10 14:43
Re: Mit Events umgehen?!2.547Akaiah24.06.10 16:52
Re: Mit Events umgehen?!2.565ModeratorFZelle24.06.10 18:13
Re: Mit Events umgehen?!2.494Superpeppi24.06.10 19:30
Re: Mit Events umgehen?!2.480Akaiah25.06.10 14:53
Re: Mit Events umgehen?!2.523Superpeppi25.06.10 16:10

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