Hier ein denkbares Beispiel:
Das Messmodul:
Public Class MessModul
Implements System.ComponentModel.INotifyPropertyChanged
Private _spannung As Double
Public Property Spannung() As Double
Set(ByVal value As Double)
_spannung = value
RaiseEvent PropertyChanged(Me, _
New System.ComponentModel.PropertyChangedEventArgs _
("Spannung"))
End Set
Get
Return _spannung
End Get
End Property
Private _messwert As Double
Public Property messwert() As Double
Set(ByVal value As Double)
_messwert = value
RaiseEvent PropertyChanged(Me, _
New System.ComponentModel.PropertyChangedEventArgs _
("Messwert"))
End Set
Get
Return _messwert
End Get
End Property
Public Event PropertyChanged(ByVal sender As Object, _
ByVal e As System.ComponentModel.PropertyChangedEventArgs) _
Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
End Class Das Hauptformular:
Public Class frmMain
Dim txtSpannung As New TextBox With _
{.Parent = Me, .Top = 10, .Left = 10, .Width = 200}
Dim WithEvents btnAbfrage As New Button With _
{.Parent = Me, .Top = 50, .Left = 10, .Width = 200, .Text = "Abfrage"}
Dim lblMesswert As New Label With _
{.Parent = Me, .Top = 90, .Left = 10, .Width = 200}
Dim MeineAbfrage As New frmAbfrage
Dim MeinMessModul As New MessModul
Private Sub frmMain_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
txtSpannung.DataBindings.Add(New Binding_
("Text", MeinMessModul, "Spannung"))
lblMesswert.DataBindings.Add(New Binding _
("Text", MeinMessModul, "Messwert"))
End Sub
Private Sub btnAbfrage_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles btnAbfrage.Click
With MeineAbfrage
.AbfrageMessModul = MeinMessModul
.ShowDialog()
End With
End Sub
End Class Der Dialog:
Public Class frmAbfrage
Private txtMesswert As New TextBox With _
{.Parent = Me, .Top = 10, .Left = 10, .Width = 200}
Private _abfragemessmodul As MessModul
Private btnOk As New Button With _
{.Parent = Me, .Top = 50, .Left = 10, .Text = "OK", _
.DialogResult = Windows.Forms.DialogResult.OK}
Public Property AbfrageMessModul As MessModul
Set(ByVal value As MessModul)
_abfragemessmodul = value
End Set
Get
Return _abfragemessmodul
End Get
End Property
Private Sub frmAbfrage_FormClosing(ByVal sender As Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) _
Handles Me.FormClosing
If e.CloseReason = CloseReason.UserClosing Then
Me.Hide() : e.Cancel = True
End If
End Sub
Private Sub frmAbfrage_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
If txtMesswert.DataBindings.Count = 0 Then
txtMesswert.DataBindings.Add(New Binding _
("Text", _abfragemessmodul, "Messwert"))
End If
End Sub
End Class |