Forum: PC-Programmierung Vb2005 textbox lesen und schrieben


von flame (Gast)


Lesenswert?

Hallo

Nach zahlreichem benutzen der Suchfunktionen und Google bin ich auf nix 
gestoßen was mir weiter helfen könnte...

Mein Problem:

Ich möchte aus einer Textbox1 den Text nach klicken auf den OK Button in 
eine Textbox2 schreiben.

Die 2 Textboxen befinden sich in unterschiedlichen Forms dh. in 2 
verschiedene Fenstern.

 Danke im Vorraus

von hans (Gast)


Lesenswert?

Schau mal hier:
http://www.activevb.de/startseite/index.html

Meinst du 2 Programme oder 2 Forms in einem Programm.

2 Programme z.b. über Zwischenablag

2 Forms über Angabe der Form   (Form1.Textbox1.Text)

gruß hans

von flame (Gast)


Lesenswert?

Danke für die Antwort.

Es handelt sich um 2 Forms in einem Programm

hab das nun mal mit

dim eingabe as string
eingabe = TextBox1.Text
form1.textbox1.text = eingabe

es funktioniert zwar wenn ich eine 2te Textbox im selben form habe also 
ohne "form1" aber die Textbox im zweiten Fenster zeigt noch nichts an.

von hans (Gast)


Lesenswert?

Wenn die eine Form aktiv ist, wird die zweite nicht aktualisiert.

Also die 2 Form nach dem Kopieren kurz aktiv schalten und ein
"DoEvents" müßte helfen.

gruß hans

von Björn V. (froghut)


Lesenswert?

also, alle controls die man auf forms plaziert sind erstmal private, 
d.h. man kann von einer anderen Klasse aus (z.B. von form1 auf form2) 
nicht einfach drauf zugreifen.
am einfachsten ist es im form designer die textbox in der zweiten form 
rechtszuklicken, properties, und da unter "modifier" von "private" auf 
"public" zu stellen (weiss nicht wie das auf deutsch alles heisst, 
sollte ja aber zu finden sein). Dann kannst du von aussen drauf 
zugreifen - aber auch nur über die Instanz der form2 ... d.h. form1 
lädt, und darin erstellst du dann form2 und zeigst diese an. (sowas in 
der art wie
1
dim frm2 as form2
2
fmr2 = new frm2()
3
frm2.Show()
bitte nicht hauen wenns nicht genau so funktioniert)
Dann kannst du mit frm2.textbox1.text = eingabe den Text in der anderen 
form setzen.
Generell solltest du dir wohl mal die grundlagen objektorientierter 
Programmierung anschauen, da wird im Prinzip genau sowas behandelt, wann 
und wie man von wo aus auf was zugreifen kann ;)

von flame (Gast)


Lesenswert?

Ok, hab das nun auf public eingestellt und mal so geschrieben:


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button2.Click
        Dim eingabe As String
        eingabe = TextBox1.Text
        form2.TextBox1.Text = eingabe
        form2.Show()

    End Sub

Funktioniert auch supper, Text wird eingegeben, bestätigt und im 2. Form 
angezeigt.

Das 2. Problem ist nun das der Text in Form2.textbox1 gespeichert werden 
sollte, dh wenn ich das Fenster schließe und neu öffne, sollte der Text 
noch immer vorhanden sein. Auch wenn das Programm zur gänze geschlossen 
und eventuell Win neu gestartet wird .

@ Björn V.d.o.
zum lesen... ja du hast recht ;)

von Björn V. (froghut)


Lesenswert?

freut mich das es soweit klappt =)
zum speichern der textbox, da gibt es die application settings. 
Eigenschaften aufs Projekt und auf den Reiter "Settings" klicken, dann 
noch welche erstellen falls da noch nichts ist (müsste dann da aber 
stehen und direkt ein button o.ä. sein).
Dann definierst du dir da alle Settings die du laden/speichern willst, 
also Setting-name, den Datentyp, und die Dropdown liste auf "User" 
stehen lassen, stellt man da auf "Application" kann man die Einstellung 
im Programm nicht mehr ändern. Das letzte Feld ist der default-wert. Am 
besten stellst du als Datentyp "string" ein,
Jetzt kannst du sogar komfortabel im Form Designer die Textbox 
anklicken, Eigenschaften drauf, und in den properties dann hast du ganz 
oben "(Application Settings)". Da auf das kleine +, dann sollte da ein 
unterpunkt "Text" sein, und da wählste einfach deine vorher definiertes 
Setting aus. Jetzt wird der Text in der Textbox automatisch gespeichert 
und geladen ;)
Das ganze nochma ausführlicher hier auf englisch: 
http://www.devx.com/vb/Article/34742

Björn

von flame (Gast)


Lesenswert?

So nun klapts aber ;)
Herzlichen Dank für die schnelle Hilfe!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.