vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Zugriff auf eine Sub in einer Form Class 
Autor: Snecx
Datum: 10.09.15 16:00

Danke. Mit dem Event funktioniert es.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Zugriff auf eine Sub in einer Form Class 
Autor: Snecx
Datum: 10.09.15 02:16

Hallo

Ich programmiere mir eine Homesteuerung. Dazu habe ich auf die Form1 class einen Serialport gelegt.
Dieser wird geöffnet und bleibt offen, damit ich dort Meldungen empfangen und weiterverarbeiten kann.

Jetzt öffne ich von dieser Form einen TCP Listener. Sobald eine Verbindung reinkommt wird eine neue Klasse (Connection) instanziert, die mir die Befehle verarbeitet. Aus dieser Klasse muss ich jetzt heraus eine Sub aufrufen, die in der Klasse Form1 liegt. Sie ist public und heisst SendRS232.

Sobald ich aber aus der Klasse Connection auf die Sub zugreife mit Form1.SendRS232 bekomme ich den Fehler
A first chance exception of type 'System.InvalidOperationException' occurred
In der Sub have ich an erster Stelle einen Invoke. So hatte ich das gelesen.
 If Me.InvokeRequired Then
            Me.Invoke(Sub() SendRs232())
            Return
        End If
Weis jemand wie ich das hinbekomme und woher der Fehler kommt? Ich vermute wegen dem Threadübergreifendem Zugriff. Aber das soll doch der Invoke lösen oder?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zugriff auf eine Sub in einer Form Class 
Autor: Snecx
Datum: 10.09.15 02:55

Ich habe um den Befehl einen try gelegt und mir die inner execption ausgegeben. Leider kann ich damit nicht anfangen.
A first chance exception of type 'System.InvalidOperationException' occurred in _
  MasterControlProgramm.exe
error:Unable to cast COM object of type 'au' to interface type 'k'. This _
operation failed because the QueryInterface call on the COM component for the _
interface with IID '{84680D3A-B2C1-46E8-ACC2-DBC0A359159A}' failed due to the _
following error: No such interface supported (Exception from HRESULT: _
0x80004002 (E_NOINTERFACE)).
error:An error occurred creating the form. See Exception.InnerException for _
details.  The error is: Unable to cast COM object of type 'au' to interface _
type 'k'. This operation failed because the QueryInterface call on the COM _
component for the interface with IID '{84680D3A-B2C1-46E8-ACC2-DBC0A359159A}' _
failed due to the following error: No such interface supported (Exception from _
HRESULT: 0x80004002 (E_NOINTERFACE)).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zugriff auf eine Sub in einer Form Class 
Autor: Manfred X
Datum: 10.09.15 03:28

Hallo!

Falls Du Default-Instanzen der Form-Klasse benutzt: Laß das!

Versuch mal folgendes:

Füge Deiner Listener-Klasse ein öffentliches Event hinzu und löse es
bei Bedarf aus.
In Form1 erstellst Du eine Instanz der Listener-Klasse und fügst für das
Listener-Ereignis eine Handler-Routine dazu.
In der Handler-Routine in Form1 kannst Du dann die Routine SendRS232 aufrufen.
Ob ein Invoke erforderlich ist, hängt davon ab, ob die Listener-Klasse beim
Auslösen des Ereignisses einen eigenen Thread am Laufen hat und worauf bei
der Verarbeitung zugegriffen wird.


Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zugriff auf eine Sub in einer Form Class 
Autor: sv00010
Datum: 12.09.15 09:04

Du könntst die Serielle Schnittstelle auch in ein Module packen.
Dann wäre so etwas nicht nötig.
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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