Outlook-Add-In:Hauptformular aus Unterformular aktualisiere

Moderator: ModerationP

Outlook-Add-In:Hauptformular aus Unterformular aktualisiere

Beitragvon ekrambler » 21. Mär 2018, 15:39

Hallo Zusammen,

jetzt ist es vollständig :razz:

da ich im mit VB.Net-Programmierung noch wenig Erfahrung habe, benötige ich Eure Unterstützung.
Ich entwickle gerade ein Outlook-Add-In und bin auf folges Problem gestossen:

ich habe zwei Formulare:
in dem 1.Formular habe ich ein ListView, der ich aus dem 2.Formular befülle.
Jetzt möchte ich die Inhalt von dem ListView aus dem 1.Formular aktualisiern, sobald in dem 2.Formular ein Button betätigt wird.

So sieht mein Code aus:
Form 1:

Public Class class1

Public Sub farbSchema_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'hier wird der ListView befüllt'
Call writeInListView(CONFIG_FILE, strSeparator)
End Sub

End Class

Form 2:
Public Class class2

Public Sub Button1_Click(sender As Object, e As EventArgs) Handles bt_neu_speichern.Click
...
End Sub

End Class

Ich freue mich auf Eure Ideen!=)
ekrambler
 

Re: Outlook-Add-In:Hauptformular aus Unterformular aktualisi

Beitragvon DerHoepp » 21. Mär 2018, 16:15

Hi,

in dem 1.Formular habe ich ein ListView, der ich aus dem 2.Formular befülle.

Wie?

Zusätzlich: Klassen sind noch keine Instanzen. Du kannst jedoch nur auf Events in Objekten reagieren. Wenn ein Objekt auf ein Event eines anderen Objektes reagieren soll, kannst du
- entweder Eventhandler für öffentliche Events der zweiten Klasse in der ersten Klasse anlegen
- oder eine Public Member eines Objektes der zweiten Klasse aufrufen, und Rückgabewerte verarbeiten.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8373
Registriert: 14. Mai 2013, 11:08

Re: Outlook-Add-In:Hauptformular aus Unterformular aktualisi

Beitragvon Gast » 21. Mär 2018, 16:28

Hllo derHöpp,

danke für die schnelle Rückemldung=)!

Wie?


In dem 2.Formular habe ich ein TextBox. Die Eingaben, die in dem TextBox gemacht wurden, speichere ich in einer Text-Datei.
Sie werden dann aus der Text-Datei in dem ListView des 1.Formulars angezeigt.

- entweder Eventhandler für öffentliche Events der zweiten Klasse in der ersten Klasse anlegen


Könntest du hierzu zeigen, wie das aussehen sollte, bitte? Genau mit den Events komme ich nicht voran.
Meine Idee war: im 2.Formular, wenn der Button betätigt, kommt ein Event hoch, welcher in dem ertsne Formular abgefangen wird.
Sobald das passiert, würde man in dem 1.Formular dann die Funktion "writeInListView(CONFIG_FILE, strSeparator)" wiederaufrufen, um das ListView auf den aktuellsten Stand zu bringen. Leider sehe ich mit dieser Umsetzung mein ListView nicht aktualisiert.

Für ein konretes Beispiel würde ich dankbar!
Gast
 

Re: Outlook-Add-In:Hauptformular aus Unterformular aktualisi

Beitragvon 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.]
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8373
Registriert: 14. Mai 2013, 11:08


Zurück zu Outlook Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste