vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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 - Fortgeschrittene
Re: Event auslösen 
Autor: WaldiMaywood
Datum: 30.09.04 18:52

So, endlich FA

Hier das versprochene Bsp. (diesmal mit einem Delegate + EventHandler):

Sub Main(Einstiegspunkt des Programmes):
Public Class ClassMain
    Public Shared Sub Main()
        Application.Run(New Form1)
    End Sub
End Class
Klasse Person (Hab mir mal eine kl. Bsp. Klasse ausgedacht):
Public Class Person
    Inherits Object
    Public Delegate Sub DelegatePersonHasChange(ByVal sender As Object, ByVal e _
      As PersonHasChangeEventArgs)
    Public EventHandlerPersonHasChange As DelegatePersonHasChange
    Private _Nachname As String
    Private Sub RaisePersonHasChangeEvent()
        EventHandlerPersonHasChange.Invoke(Me, New PersonHasChangeEventArgs( _
          Me._Nachname))
    End Sub
    Public Sub New(ByVal Nachname As String)
        Me._Nachname = Nachname
    End Sub
    Public Property Nachname() As String
        Get
            Return _Nachname
        End Get
        Set(ByVal Value As String)
            _Nachname = Value
            RaisePersonHasChangeEvent()
        End Set
    End Property
    Private Shared _Person As Person
    Public Shared Function GetInstance() As Person
        If _Person Is Nothing Then
            _Person = New Person(Nothing)
        End If
        Return _Person
    End Function
End Class
Public Class PersonHasChangeEventArgs
    Inherits EventArgs
    Private _Nachname As String
    Public Sub New(ByVal Nachname As String)
        Me._Nachname = Nachname
    End Sub
    Public ReadOnly Property Nachname() As String
        Get
            Return _Nachname
        End Get
    End Property
    Public Overrides Function ToString() As String
        Return Me.Nachname
    End Function
End Class
Anwendung der Klasse in Form1:
Public Class Form1
    Inherits System.Windows.Forms.Form
#Region " Vom Windows Form Designer generierter Code "
#End Region
    Dim myPerson As Person
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        myPerson = Person.GetInstance()
        myPerson.EventHandlerPersonHasChange = New _
          Person.DelegatePersonHasChange(AddressOf PersonHasChangeEventHandler)
        Dim f2 As New Form2
        f2.Show()
    End Sub
    Private Sub PersonHasChangeEventHandler(ByVal sender As Object, ByVal e As _
      PersonHasChangeEventArgs)
        Debug.WriteLine("Daten wurden verändert: " + e.ToString)
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        myPerson.Nachname = "Meier"
    End Sub
End Class
Anwendung der Klasse in Form2 (Form3, Form4 ..usw.):
Public Class Form2
    Inherits System.Windows.Forms.Form
#Region " Vom Windows Form Designer generierter Code "
#End Region
    Dim myPerson As Person
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        myPerson = Person.GetInstance() '// << nur eine Instanz verwenden, wg. 
        ' "Global"
        myPerson.EventHandlerPersonHasChange = New _
          Person.DelegatePersonHasChange(AddressOf PersonHasChangeEventHandler)
    End Sub
    Private Sub PersonHasChangeEventHandler(ByVal sender As Object, ByVal e As _
      PersonHasChangeEventArgs)
        Debug.WriteLine("Daten wurden verändert: " + e.ToString)
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        myPerson.Nachname = "Lustig"
    End Sub
End Class
Hab mal das komplette Projekt gepostet, damit es keine Unklarheiten gibt

Steve
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Event auslösen1.174lkatsch29.09.04 16:20
Re: Event auslösen1.038norbert5529.09.04 16:28
Re: Event auslösen769lkatsch29.09.04 16:31
Re: Event auslösen745norbert5529.09.04 16:58
Re: Event auslösen799lkatsch29.09.04 17:01
Re: Event auslösen1.019WaldiMaywood29.09.04 17:16
Re: Event auslösen835lkatsch29.09.04 17:39
Re: Event auslösen861WaldiMaywood29.09.04 19:38
Re: Event auslösen780lkatsch29.09.04 19:48
Re: Event auslösen790lkatsch30.09.04 15:24
Re: Event auslösen794WaldiMaywood30.09.04 16:15
Re: Event auslösen767lkatsch30.09.04 16:22
Re: Event auslösen943WaldiMaywood30.09.04 18:52
Re: Event auslösen1.008WaldiMaywood30.09.04 21:11
Re: Event auslösen801lkatsch02.10.04 11:35
Re: Event auslösen836WaldiMaywood02.10.04 14:18
Re: Event auslösen730lkatsch02.10.04 14:34
Re: Event auslösen787WaldiMaywood02.10.04 14:43
Re: Event auslösen741lkatsch02.10.04 14:48
Re: Event auslösen763WaldiMaywood03.10.04 12:54
Re: Event auslösen773lkatsch04.10.04 08:39
Re: Event auslösen823WaldiMaywood04.10.04 14:32
Re: Event auslösen725lkatsch01.10.04 13:31
Re: Event auslösen740lkatsch02.10.04 11:45
Re: Event auslösen886Moderatorralf_oop02.10.04 12:08
Re: Event auslösen696lkatsch02.10.04 12:17

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