Problem bei VB

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Heyho.
    Ich hab da ein Problem bei Visual Basic 2010.
    Ich möchte, dass ich den Text von TextBox1 in einer anderen TextBox hab.


    Habs bis jetzt so:


    Code
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Form2.Show()        Form2.TextBox1.Text = "Hier möchte ich Textbox9.Text haben"    End Sub


    Dazu hab ich noch eine andere Frage.
    Ich möchte einen Zeilenumbruch im Editor haben.
    Sprich einen normalen Enter.


  • meinst du jetzt eine TEXTBOX oder eine RICHTEXTBOX
    TEXTBOX1


    Code
    textbox2.text = textbox1.text





    TEXTBOX2


    Code
    textbox2.text = textbox1.text





    oder



    RICHTEXTBOX1


    Code
    richtextbox2.text = richtextbox1.text




    RICHTEXTBOX2


    Code
    richtextbox2.text = richtextbox2.text




    Sag bitte bescheid wenns hilft ;)

  • Sagen wir in Textbox2 steht "gewonnen"
    Ich drücke dann auf einen Button. Es öffnet sich eine neue Form, auf der auch eine Textbox ist.
    In dieser Textbox steht schon "Du hast [...]"
    Dort wo das [...] ist, soll der Text von Textbox2 stehen.
    Jedoch bekomme ich das nicht hin.

  • Für den Zeilenumbruch:
    Versuch mal statt Enter "\n" zu benutzen.


    Das mit dem Text ist schon komplizierter. Falls du den Text nur bei Anzeigen übernehen willst, würde ich zu Polymorphie tippen, d.h. du überschreibst die Show() Methode.

    Code
    Public Overrides Sub Show(text As String)
        TextBox2.Text += text
        MyBase.Show()
    End Sub


    Ich sprech leider nur C#, die Syntax könnte also evtl. falsch sein, einfach mal bei der msdn schauen. Weil VB auch .Net ist, müsste die Vererbung genauso laufen.
    Kurze erklärung:
    Deine Form1 (oder wie die Form heißt) ist von der Baisklasse Form abgeleitet. Die Formklasse hat eine Funktion Show() Mit der das Fenster angezeigt wird. Diese Methode überschreibst du, dafür verwendest du Overrides (überschreibt). Weil du aber immernoch das Fenstern anzeigen willst, musst du noch die Standardfunktion aufrufen die von Form kommt. MyBase zeigt auf die Klasse, von der abgeleitet wird, in dem Fall Form und ruft die dortige Methode Show() auf.


    Ansonsten würde die Übergabe etwas schöner über den Konstruktor gelöst werden, ich weiß aber nich ob du die Form mehrmals mit unterschiedlichem Text anzeigst, da bietet sich das mehr an :)

  • Hmm.
    Funzt immer noch nicht :X.
    Hab jetzt einmal das \n versucht, geht leider nicht.


    Zum zweiten.
    Es bringt genau soviel, das ne Fehlermeldung auftaucht.
    Bin noch ein Anfänger, deswegen fang ich mit dem Fehlercode nicht wirklich viel an:

    Zitat

    sub "show" kann nicht als "Overrides" deklariert werden, da es sub in Basis class nicht überschreibt.


    Aber trotzdem thx für die Hilfe.

  • Zum Fehler, Ach klar, dass kommt von Pseudocode =x
    Du musst das Overrides entfehrnen. Form besitzt schließlich keine Methode, die einen String als Argument erwartet. Dannach sollte es gehen.
    Versuch mal folgendes statt \n:
    Environment.NewLine oder \r oder \n\r.
    Ansonsten hab ich grad folgendes gefunden: vbNewLine
    Müsstest du halt so verwenden:
    text = "Text" & vbNewLine & "Text"
    wird zu:
    Text
    Text

  • OMFG thx.
    Also mein erstes Problem ist mal gelöst, echt danke.
    Ich hab immer ein "+" gemacht anstatt "&" xD
    Naja. jetzt gehts echt danke.


    Ich weiß jetzt auch schon wie ich den Text einfüge.

    Code
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Form2.Show()
            Form2.TextBox1.Text = "Test" & vbNewLine & Textbox1.Text & "und so weiter und so fort ^^".
    
    
    End Sub


    So geht es ^^
    Echt thx.