Wertübertrag von Form1 nach Form 2

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    Wertübertrag von Form1 nach Form 2

    Hallo, was Visual Basic NET anbelangt bin ich noch Anfänger ,und hoffe das ich mit meiner für euch einfachen Frage hier richtig bin.

    Also ich wollt ein Programm erstellen, das in Form1 eingaben gemacht werden können, und nach dem Enter direkt auf Form 2 entsprechend angezeigt werden können
    ich hab das ganze jetzt mal mit mit 2 Textboxen Textbox1 in Form1 und txtbox1 in Form 2 versucht , aber es geschieht kein übertrag, woran liegt dieses

    VB.NET-Quellcode

    1. Public Class Form1
    2. Inherits System.Windows.Forms.Form
    3. Dim Fens2 As New Form2()
    4. Dim TXT As String
    5. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    6. Form2.Show()
    7. End Sub
    8. Private Sub TextBox1_Enter(sender As Object, e As EventArgs) Handles TextBox1.Enter
    9. Fens2.txtbox1.Text = Me.TextBox1.Text
    10. End Sub
    11. End Class


    Danke erst mal in voraus

    *Topic verschoben*
    Ich bin, wie ich bin, in vielen sachen noch ein anfänger, auch wenn ich sachen schon seit jahren mache

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hallo,

    gleich vorab: TextBox1.Enter heißt nicht, dass es auf eine Tasteneingabe "Enter" reagiert.
    Dieses Event wird nur ausgelößt wenn du in die Textbox klickst und sie dadurch aktivierst. D.h. der Fokus liegt dann auf der TextBox bzw. der Cursor ist dann in der TextBox.

    Wenn du das mit der Enter-Taste auslösen willst musst du das KeyPress, KeyDown oder KeyUp Event benutzen.
    Oder du verwendest das TextChanged-Event. Da wird bei jeglicher Eingabe das Event ausgelöst.

    Momentan ist es bei dir so, dass wenn du in deiner TextBox drin bist erst dann das Event ausgelöst wird wenn du sie verlässt und wieder reinklickst.

    MCSITK schrieb:


    VB.NET-Quellcode

    1. Fens2.txtbox1.Text = Me.TextBox1.Text


    Ist txtbox1 richtig geschrieben?

    Gruß Alex

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „itAxel“ ()

    jep ist richtig geschrieben

    und es reagiert nicht mal bei Reinklicken oder rauskicken werd mal mit keypress und asci(13) versuchen
    Ich bin, wie ich bin, in vielen sachen noch ein anfänger, auch wenn ich sachen schon seit jahren mache

    itAxel schrieb:

    Wenn du das mit der Enter-Taste auslösen willst musst du das KeyPress, KeyDown oder KeyUp Event benutzen.

    In diesem Event Form2 instanzieren (New) die Function (siehe 2.) aus Form2 ansprechen und den string übergeben. Danach dann die Form2 anzeigen.

    2. Du kannst in deinem Form2 eine öffentliche Function schreiben, die als Übergabewert einen String (TextBox1.Text) erwartet. In dieser Function kannst du dann den Übergabewert in der Textbox platzieren.

    Das hier ist böse: Fens2.txtbox1.Text = Me.TextBox1.Text
    Bitte nicht mehr machen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    So wenn ich es richtig verstanden haben sieht es so aus :

    VB.NET-Quellcode

    1. Public Class Form1
    2. Inherits System.Windows.Forms.Form
    3. Dim Fens2 As New Form2()
    4. Dim TXT As String
    5. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    6. Form2.Show()
    7. End Sub
    8. Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
    9. If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
    10. TXT = TextBox1.Text
    11. Fens2.txtbox1.Text = TXT
    12. End If
    13. End Sub


    aber funktioniert immer noch nicht
    Wenn es fertig ist soll in form1 ein HTML oder PHP Code eingegeben werden, und auf form 2 dirrekt eine live Darstellung, aber bevor ich soweit bin muss ich die grundlagen verstehen

    Fens2.txtbox1.Text = Me.TextBox1.Text

    War für mich um es mir das zu erinfachen aber keine entgültige Lösung
    Ich bin, wie ich bin, in vielen sachen noch ein anfänger, auch wenn ich sachen schon seit jahren mache
    So kann man das ohne schmutzige tricks machen:
    Code Form1:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub txtTextbox1_KeyDown(sender As Object, e As KeyEventArgs) Handles txtTextbox1.KeyDown
    3. If (e.KeyCode = Keys.Enter) Then
    4. Dim NeuesFenster As New Form2()
    5. NeuesFenster.sInhaltTextbox = txtTextbox1.Text
    6. NeuesFenster.Show()
    7. End If
    8. End Sub
    9. End Class


    Code Form2:

    VB.NET-Quellcode

    1. Public Class Form2
    2. Private _sInhaltTextbox As String
    3. Public Property sInhaltTextbox() As String
    4. Get
    5. Return _sInhaltTextbox
    6. End Get
    7. Set(ByVal value As String)
    8. _sInhaltTextbox = value
    9. End Set
    10. End Property
    11. Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    12. txtTextBox2.Text = sInhaltTextbox
    13. End Sub
    14. End Class
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Danke für das es geht nun soweit , so und wenn ich es richtig verstehe wird form2 als neues fenster deklariert die daten eingelesen und beim öfffen des neune festers die daten wieder ausgelesen und angezeigt , ich kann sie im neuen fenster auch bearbeiten innerhalb des form loads. also bevor es angezeigt wird ?
    Ich bin, wie ich bin, in vielen sachen noch ein anfänger, auch wenn ich sachen schon seit jahren mache

    MCSITK schrieb:

    ich kann sie im neuen fenster auch bearbeiten innerhalb des form loads. also bevor es angezeigt wird ?

    ​Klar, damit kannst im FormLoad Event alles möglich treiben ...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Nun wird aber nach jedem Enter ein neues fenster geöffnet, es soll im gleichen fester bleiben , der sinn darin ist das ich wenn ich rechts am monitor was eingebe links direkt das ergebnis sehen kann.


    Ich bin, wie ich bin, in vielen sachen noch ein anfänger, auch wenn ich sachen schon seit jahren mache

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

    MCSITK schrieb:

    wird form2 als neues fenster deklariert
    Das ist schon sehr gut erkannt. :thumbup:
    Verstehe dieses Tut: Instanziierung von Forms und Aufruf von Dialogen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich weis nicht ob ich zu dumm bin es zu verstehen, oder es nicht wirklich erklärt habe, worum es mir geht
    1. Bei Programstart, sollen zwei Forms erscheinen( Später auf Monitor 1 & Monitor 2)
    2. Wenn ich bei Form 1 eine eingabe mache , soll diese sich auf form2 angezeigt werden , nachdem Enter gedrückt wurde

    Nun aber wird Form2 erst nach dem ersten anklicken geöffnet, und wenn ich wieder anklicke kommt ein neues fenster
    arbeite mich gerade auch durch dein Link durch @RodFromGermany und versuche es zu verstehen.

    Ich versuche es in VB.net 15 zu schreiben, aber zb dein Vid errinert mich an VB6 ind em link
    Ich bin, wie ich bin, in vielen sachen noch ein anfänger, auch wenn ich sachen schon seit jahren mache
    @MCSITK Mach Dir ein neues Projekt mit 2 Formen.
    Form1 mit einem Button, Form2 mit einer TextBox.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Dialog As Form2
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. Me.Dialog = New Form2
    5. Me.Dialog.Show(Me)
    6. End Sub
    7. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    8. If Me.Dialog Is Nothing OrElse Me.Dialog.IsDisposed Then
    9. Me.Dialog = New Form2
    10. End If
    11. If Not Dialog.Visible Then
    12. Me.Dialog.Show(Me)
    13. End If
    14. Me.Dialog.MyText = "bla"
    15. End Sub
    16. End Class

    VB.NET-Quellcode

    1. Public Class Form2
    2. Public WriteOnly Property MyText As String
    3. Set(value As String)
    4. Me.TextBox1.Text = value
    5. End Set
    6. End Property
    7. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke @RodFromGermany und @mrMo jetzt klappt der erste teil so wie ich es mir vorstelle, nach dem ich eure beiden teile anpasst habe
    den zweiten teil " das ganze als php temorär zu speichern und es direkt wieder im webbrowser (form2) anzuzeigen.

    Form 1:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Dialog As Form2
    3. Dim TXT As String
    4. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. Me.Dialog = New Form2
    6. Me.Dialog.Show(Me)
    7. End Sub
    8. Private Sub txtBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles txtBox1.KeyDown
    9. If (e.KeyCode = Keys.Enter) Then
    10. If Me.Dialog Is Nothing OrElse Me.Dialog.IsDisposed Then
    11. Me.Dialog = New Form2
    12. End If
    13. If Not Dialog.Visible Then
    14. Me.Dialog.Show(Me)
    15. End If
    16. TXT = txtBox1.Text
    17. Me.Dialog.MyText = TXT
    18. End If
    19. End Sub
    20. End Class


    Form2:

    VB.NET-Quellcode

    1. Public Class Form2
    2. Public WriteOnly Property MyText As String
    3. Set(value As String)
    4. Me.TextBox1.Text = value
    5. End Set
    6. End Property
    7. End Class


    Ich bin, wie ich bin, in vielen sachen noch ein anfänger, auch wenn ich sachen schon seit jahren mache

    MCSITK schrieb:

    VB.NET-Quellcode

    1. Dim TXT As String
    Wozu brauchst Du diese Variable?
    Die kann ersatzlos gestrichen werden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Die variabel, brauch ich um den text zu speichern brz zu bearbeiten später , soll ja später nicht nur anzeigen , wie gesagt wird zwischengespeichert , oder kann man ein textbox, komplett als ganzes speichern ?
    ah es geht sorry ok TXT brauch ich nicht
    Ich bin, wie ich bin, in vielen sachen noch ein anfänger, auch wenn ich sachen schon seit jahren mache

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

    RodFromGermany schrieb:


    Wozu brauchst Du diese Variable?
    Die kann ersatzlos gestrichen werden.


    Wollts doch grad sagen :)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen