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
Prob bei -> Listbox__SelectedIndexChanged <- manuellem Aufruf 
Autor: Hase1
Datum: 14.11.14 00:40

Hallo, Bitte um Hilfe, mein Probem:
Ich habe eine Listbox, in der mehrere Datensätze angezeigt werden. Bei anklicken (Markierung) eines Datensatzes werden die Daten des Datensatzes in verschiedenen Textbox-Feldern angezeigt. Soweit, so gut.Diese momentan aktuellen Daten speicher ich in einer Hifsvariablen ([u]Datensatz_momentan in-->String) ab.

Die Daten der Listbox werden weiter verarbeitet und natürlich auch verändert.
Danach will ich durch Aufruf von der Listbox-SelectedIndexChanged Möglichkeit

--> lstTab_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _
Handles lstTab.SelectedIndexChanged <--

wieder die alten ORIGINAL Daten wieder herstellen.

Beim Aufruf geb ich als SENDER die vorher gesicherten Daten in [u]Datensatz_momentan an
ABER: ich weiß nicht was ich bei Var --> e As System.EventArgs <-- übergeben werden soll.

Leider kommen dann folgende Fehlermeldungen:
Ohne e Angabe: wurde kein Argument angegeben
Mit e Angabe: e wurde nicht deklariert

Danke im Voraus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Prob bei -> Listbox__SelectedIndexChanged <- manuellem Aufruf 
Autor: Manfred X
Datum: 14.11.14 06:16

Hallo!

Die Verarbeitungsroutine für SelechtedIndexChanged-Event der Listbox
erwartet als zweiten Parameter die Basisklasse von EventArgs.
Speziell für solche Aufrufe ist "EventArgs.Empty" eingerichtet.

lstTab_SelectedIndexChanged(Me, EventArgs.Empty)
Der Sender-Parameter sollte angeben, in welcher Klassen-Instanz
das Ereignis ausgelöst (RaiseEvent) worden ist.

Die Variable "DatenSatz_momentan" wäre nicht an die Routine
per Parameter zu übergeben, sondern auf Modulebene zu deklarieren
(= ausserhalb von Routinen im Formular).
Du könntest alternativ von der EventArgs-Klasse eine Ableitung
erstellen und in der Ereignisroutine den e-Parameter entsprechend casten.


Die Klasse:
    Class SelectedIndexEventArgs
        Inherits EventArgs
 
        Private _selectedIndexChangedParams As Object
 
        Public Sub New(SelectedIndexChangedParams As Object)
            _selectedIndexChangedParams = SelectedIndexChangedParams
        End Sub
 
        Public ReadOnly Property SelectedIndexChangedParams() As Object
            Get
                Return _selectedIndexChangedParams
            End Get
        End Property
    End Class
Der Aufruf der Routine:
lstTab_SelectedIndexChanged(Me, New SelectedIndexEventArgs("Meine Daten"))
Der Zugriff (Cast):
Private Sub lstTab_SelectedIndexChanged(sender As Object, _
        e As System.EventArgs) Handles lstTab.SelectedIndexChanged
 
    If TypeOf e Is SelectedIndexEventArgs Then
       Dim siea As SelectedIndexEventArgs = DirectCast(e, _
         SelectedIndexEventArgs)
       Dim mydata As Object = siea.SelectedIndexChangedParams
 
       '.........
       'MyData wäre ggf. weiter zu casten - oder man verwendet eine spezifische 
       'Eigenschaft in der SelectedIndexEventArgs-Klasse
    End If
 
End Sub
(Vermutlich ist Deine Vorgehensweise nicht optimal.
Versuche, eine geeignete Datenklasse zu erstellen -
Implementierung der IEditableObject-Schnittstelle.)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Prob bei -> Listbox__SelectedIndexChanged <- manuellem Aufruf 
Autor: Hase1
Datum: 14.11.14 18:26

Vielen Dank für deine Infos und Hilfe
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