Daten von aufrufender Form ändern

Schlonz

Grünschnabel
Hallo erstmal

Ich habe folgendes Problem
Von meinem Hauptform aus rufe ich ein weiteres Form auf durch

DIM objForm2 as new Form2
objForm2.ShowDialog()

auf. Mit diesem zweiten Form will ich jetzt zB auf ein Textfeld des ersten Forms zugreifen. Was muß ich tun damit ich Zugriff auf das erste Form bekomme.

Habe schon versucht mit

DIM objForm1 as Form1
objForm1.txtEingabe ...

Programm verabschiedet sich aber immer

im Voraus schon mal vielen Dank
 
Hallo

wenn Ich 's so probiere bekomme ich folgende Fehlermeldung


Reference to a non-shared member requires an object reference.

und die Autokorrektur zeigt mir auch beim schreiben schon nen Fehler an.
Auch wenn ich nach
FORM1
den Punkt setzte habe ich nicht die Möglichkeit auf das Textfeld zuzugreifen.
Ich denke Ich muß das erste Form erst in der Zweiten bekannt machen, weiss
allerdings nicht wie.

trotzdem vielen Dank

Grüße Schlonz
 
Sei Form1 das Startformular. Auf Form2 gibt es ein Textfeld mit dem Namen txtEINGABE. Per Button auf Form1 wird nun Form2 geladen, das Textfeld angesprochen und Form2 angezeigt:
Code:
Sub Command1_Click()
   Load Form2
   Form2.txtEINGABE.Text = "TEST"
   Form2.Show
End Sub
 
Hallo

leider nicht.
Form1 ist das Startformular und ich starte über einen Knopf Formular 2.
Nun will ich das Textfeld auf Formular 1 ändern.
Wie kann ich nun, wenn ich mich auf Formular 2 befinde auf Objekte in Formular 1
zugreifen.
Von Formular 1 auf Formular 2 ists ja kein Problem weil ich in Formular 1 eine Variable auf Formular 2 definiere ( dim objForm2 as new Form2).
Somit kann ich mit objForm2 auf alle Steuerelemte auf Fomular 2 zugreifen, auch wenn ich mich auf Formular 1 befinde.

trotzdem vielen Dank

Grüße Schlonz
 
Du kannst definitiv auch ohne 'dim objForm2 as new Form2' auf die Steuerelemente der zweiten Form zugreifen.

Ganz einfaches Beispiel: Du erstellst zwei Forms. Auf beiden jeweils einen Button und ein TextFeld, versorgst die Forms mit folgendem Code und probierst es aus:

Code:
' Code für Form1
Private Sub Form_Load()
   Load Form2
End Sub

Private Sub Command1_Click()
   Form2.Text1.Text = Form2.Text1.Text & "TestForm2"
   Form2.Show
End Sub


'Code für Form2
Private Sub Command1_Click()
   Form1.Text1.Text = Form1.Text1.Text & "TestForm1"
   Form1.Show
End Sub
 
Hallo noch mal
nach längerer Sucherei hab ich nun endlich die lösung zu meinem Problem gefunden.
Mein Problem hängt mit VB .net zusammen. In der neuen Version von VB ist es nämlich nicht erlaubt direkt auf Objekte zuzugreifen, sondern man muß zuerst eine Instanz erzeugen. Das liegt daran das es keine globale Standartinstanz von z.B. einer Form mehr gibt. Das bedeutet man kann von Form2 nicht mehr mit

Form1.txtName.Text = "BlaBla"

auf das TextFeld zugreifen, weil man dazu eine Instanz von Form1 bracht.

Wers genau wissen will kann's ja unter

http://www.microsoft.com/germany/ms/msdnbiblio/show_all.asp?siteid=547827

genau nachlesen.

Grüße Schlonz
 
Zurück