TextBox Value in anderem Form weiternutzen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ryLIX.

    TextBox Value in anderem Form weiternutzen

    Hallo,

    nach längerem stilen mitlesen habe ich mih nun hier angemeldet, mit der folgenden Frage:

    Ich programmiere ein Tool, welches von dem ersten Hauptform per Buttonclick ein zweites aufruft. In dem zweiten Form sind mehrere Eingaben in Textboxen vorzunehmen. Diese Eingaben sollen dann in dem Hauptform ausgeführt werden. Ich habe nun ständig mit MsgBox rumexperimentiert um zu versuchen, ob sich die Variablen überhaupt kopieren bzw. zwischen den Forms verwenden lassen. Dazu mein Code:



    In Form2:
    Public Class Form2

    Public testvar As New Integer

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
    testvar = TextBox1.Text
    Me.Hide()
    End Sub

    End Class
    In Form1 (Hauptform):

    Public Class Form1


    Private Sub configure_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles configure_button.Click

    Dim F As New Form2
    F.Show()

    End Sub


    Private Sub Test_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Test_button.Click

    MsgBox(Form2.testvar)

    End Sub

    End Class
    Warum funktioniert das nicht? Wenn ich mir beim OK-Button aus Form2 eine MsgBox einbaue zeigt er mir den Wert an, den ich in die TextBox eingebe. In Form1 bekomme ich aber immer 0 angezeigt.

    Alternativ könnte ich in die MsgBox in Form1 auch:

    MsgBox(Form2.TextBox1.Text)
    da zeigt die MsgBox gar nichts an...


    Also, was mache ich falsch und wie mache ich es richtig?

    Vielleicht sollte ich noch anmerken, dass es mir schon darauf ankommt, Variablen zu nutzen, also die Werte der TextBox1 in Form2 sollen in eine Variable geschrieben werden, die ich dann in Form1 weiternutzen kann...

    Vielen Dank schonmal!
    Kann mir denn keiner helfen?

    Was sicherlich geht ist folgendes:

    Public Module Module1
    Public test As Integer
    End Module

    Public Class Form1
    Private Sub Test_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Test_button.Click
    MsgBox(Module1.test)
    End Sub
    End Class

    Public Class Form2
    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
    Module1.test = TextBox1.Text
    End Sub
    End Class
    Find ich allerdings sehr unhandlich.

    Soll ich jetzt etwa alle Variablen erst im seperaten Modul "zwischenspeichern, um sie dann im Form1 weiter zu verwenden? Geht das nicht eleganter in VB? Need help!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „msvhub“ ()

    Kouki schrieb:

    Ich würde einen Public Integer in die Erste Form machen und beim schließen der 2. Form würde ich den Wert des Integers aus Form1 = den Integer der Form2 machen. Denn beim schließen der Form werden alle Daten auf ihr Standart gesetzt.
    Ich würde dir empfehlen das du, wenn du etwas erklärst, es auch richtig erklärst.
    Denn
    1. Man verwendet keine Variable mit Datentyp Integer um Text zu übergeben / speichern.
    2. Es heißt Standard!!!!!!!!!!!!!!
    3. Er möchte einen Wert von Form2 nach Form1 übergeben 8|