von DerHoepp » 22. Mär 2018, 22:05
Hallo noch einmal,
mit Outlook hat das nun gar überhaupt nix zu tun, aber auch in VB.Net kannst du auf unterschiedliche Arten arbeiten. In meinem Beispiel habe ich zwei Forms eingesetzt. Form1 hat ein Label und zwei Buttons, Form 2 einen Button und eine Textbox.
Möglichkeit 1 ist es, der Form2-Klasse eine Public Function zu geben, die die Form als Dialog aufruft und den Inhalt der Textbox zurückgibt.
Möglichkeit 2 ist es, der Form2-Klasse ein Public Event zu geben, welches ausgelöst wird, wenn der Button gedrückt wird.
Code der Form 1:
- Code: Alles auswählen
Public Class Form1
Private WithEvents mSecondForm As Form2
Private Sub aSecondForm_Okay(sender As Object, e As EventArgs) Handles aSecondForm.Okay
Me.Label1.Text = sender.theText
sender.hide
aSecondForm = Nothing
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim pSecondForm As New Form2
Me.Label1.Text = pSecondForm.GetText()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
mSecondForm = New Form2
mSecondForm.Show()
End Sub
End Class
Code der Form2:
- Code: Alles auswählen
Public Class Form2
Public Event Okay(sender As Object, e As EventArgs)
Private mCalledByFunction As Boolean = False
Private mReturnVal As String
Public Function GetText() As String
mCalledByFunction = True
Me.ShowDialog()
GetText = Me.TextBox1.Text
End Function
Public ReadOnly Property theText() As String
Get
Return mReturnVal
End Get
End Property
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If mCalledByFunction Then
Me.Hide()
Else
mReturnVal = Me.TextBox1.Text
RaiseEvent Okay(Me, New EventArgs)
End If
End Sub
End Class
Weitere Übergaben, beispielsweise über eine eigene Klasse, oder einen in Form2 veränderten Parameter, der von Form1 übergeben wurde, sind natürlich denkbar.
Viele Grüße erstmal!
derHöpp
[PS: Für .Net-Anfragen ist ein "echtes" VB.Net-Forum wie vb-paradise.de vielleicht besser geeignet, als das Outlook-Forum.]
Hallo noch einmal,
mit Outlook hat das nun gar überhaupt nix zu tun, aber auch in VB.Net kannst du auf unterschiedliche Arten arbeiten. In meinem Beispiel habe ich zwei Forms eingesetzt. Form1 hat ein Label und zwei Buttons, Form 2 einen Button und eine Textbox.
Möglichkeit 1 ist es, der Form2-Klasse eine Public Function zu geben, die die Form als Dialog aufruft und den Inhalt der Textbox zurückgibt.
Möglichkeit 2 ist es, der Form2-Klasse ein Public Event zu geben, welches ausgelöst wird, wenn der Button gedrückt wird.
Code der Form 1:
[code]Public Class Form1
Private WithEvents mSecondForm As Form2
Private Sub aSecondForm_Okay(sender As Object, e As EventArgs) Handles aSecondForm.Okay
Me.Label1.Text = sender.theText
sender.hide
aSecondForm = Nothing
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim pSecondForm As New Form2
Me.Label1.Text = pSecondForm.GetText()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
mSecondForm = New Form2
mSecondForm.Show()
End Sub
End Class[/code]
Code der Form2:
[code]Public Class Form2
Public Event Okay(sender As Object, e As EventArgs)
Private mCalledByFunction As Boolean = False
Private mReturnVal As String
Public Function GetText() As String
mCalledByFunction = True
Me.ShowDialog()
GetText = Me.TextBox1.Text
End Function
Public ReadOnly Property theText() As String
Get
Return mReturnVal
End Get
End Property
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If mCalledByFunction Then
Me.Hide()
Else
mReturnVal = Me.TextBox1.Text
RaiseEvent Okay(Me, New EventArgs)
End If
End Sub
End Class[/code]
Weitere Übergaben, beispielsweise über eine eigene Klasse, oder einen in Form2 veränderten Parameter, der von Form1 übergeben wurde, sind natürlich denkbar.
Viele Grüße erstmal!
derHöpp
[PS: Für .Net-Anfragen ist ein "echtes" VB.Net-Forum wie vb-paradise.de vielleicht besser geeignet, als das Outlook-Forum.]