vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 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
Probleme bei Ereignisauslösung 
Autor: Thammes
Datum: 10.02.09 12:34

Hallo zusammen,

habe ein Problem mit der Ereignisauslösung bei meinem Programm. Es soll ein Ereignis bei überschreiten des Members m_dispo ausgelöst werden (DispoGrenze).
Es geht darum, dass ein Konto erzeugt und mit Werten belegt wird. Sollte bei der Argumentübergabe (Werte) der Dispo (Dispo = -3000)überschritten werden z.B. -4000 so ist das Ereignis DispoGrenze auszulösen und dementsprechend eine Messagebox mit Meldung an den Benutzer auszulösen.

Es soll auch eine Meldung ausgegeben werden, wenn bei der zweiten Buchung der Dispo überschritten wird. Das ganze muss von der Sub Buchung kommen, die macht die Arbeit.

Steh seit einer Woche auf dem Schlauch und hab schon etliche versuche unternommen doch alle schlugen fehl.

Ich vermute die Fehler in den rot markierten Bereichen.

Ich hoffe Ihr könnt mir mit Rat und vielleicht Tat zur Seite stehen.

Vielen Dank schon mal im Voraus

Hier der Code:

Imports System.Console
Imports System.Windows.Forms
 
Public Class Konto
    Private m_Kontonr As String
    Private m_Kontostand As Decimal
    Private m_Dispo As Decimal
    Event DispoGrenze(ByVal Sender As Object, ByRef cancel As Object)
 
    Sub New(ByVal KontoNr As String, ByVal Kontostand As Decimal, ByVal Dispo _
      As Decimal)           'Konstruktor
        m_Kontonr = KontoNr
        m_Kontostand = Kontostand
        m_Dispo = Dispo
    End Sub
 
    Public ReadOnly Property KontoNr() As String
        Get
            KontoNr = m_Kontonr
        End Get
    End Property
 
    Public ReadOnly Property Kontostand() As Decimal
        Get
            Kontostand = m_Kontostand
        End Get
    End Property
 
    Public Property Dispo() As Decimal
        Get
            Dispo = m_Dispo
        End Get
        Set(ByVal value As Decimal)
            m_Dispo = value
        End Set
    End Property
 
    Sub Buchung(ByVal Betrag As Decimal)
        Dim Abbrechen As Boolean = False
        If Betrag < m_Dispo Then
            RaiseEvent DispoGrenze(Me, Abbrechen)
            If m_Kontostand < m_Dispo Then
                RaiseEvent DispoGrenze(Me, Abbrechen)
            End If
        Else
            m_Kontostand = m_Kontostand + (Betrag)
        End If
    End Sub
    Sub Ausgabe()                            'Ausgabe der Konten
        WriteLine("Kontonr: {0,-10} Kontostand: {1,4}     Disporahmen: {2,8}", _
          m_Kontonr, m_Kontostand, m_Dispo)
    End Sub
End Class
Public Class Test
    Private Shared WithEvents k As Konto
    Shared Sub Main()
        Dim k As Konto
        k = New Konto("123", -5000, -3000)
        k.Ausgabe()
        k.Buchung(-10000)
        k.Ausgabe()
        k.Buchung(-2000)
        k.Ausgabe()
        ReadLine()
    End Sub
    Private Shared Sub Buchung_DispoGrenze(ByVal Sender As Object, ByRef cancel _
      As Object) Handles Buchung.DispoGrenze
        MessageBox.Show("Test", "Text", MessageBoxButtons.OK, _
        MessageBoxIcon.Error)
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Probleme bei Ereignisauslösung1.979Thammes10.02.09 12:34
Re: Probleme bei Ereignisauslösung1.615ModeratorDaveS10.02.09 13:06
Re: Probleme bei Ereignisauslösung1.596Thammes10.02.09 13:18

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