Variable von Form2 in Form1 übergeben

reeng

Grünschnabel
Hallo zusammen...

Seit längerem bin ich die Foren am durchstöbern, um mein Problem zu lösen. Leider werden meistens nur .NET Lösungen für mein problem geschildert. Folgendes:
Ich bin daran, mit Visual Basic 2008 Express Edition, ein kleines Backup-Programm zu schreiben, welches mir automatisch schlussendlich ein Batch-File erzeugt. Hierzu habe ich ein Button in Form1 (Hauptform), mit dem man zur Form2 gelangt. In dieser Form 2 sollen Pfade ausgewählt werden. Dies funktioniert auch einwandfrei. Aber sobald ich die Variablen, welche den Pfad als String enthalten, der Form1 übergeben will, hat die Variable einen leeren Inhalt. Ich kann sie zwar ansteuern mit form2.pfad_source1 (wird automatisch angezeigt diese Variable), aber wie gesagt wird mir denn bei FOrm1 nichts mehr als Inhalt angezeigt :( . Folgender COde verwende ich:

Public Class Form2

Public pfad_source1 As String
Public pfad_source2 As String
Public pfad_source3 As String
Public pfad_source4 As String

Private Sub verz1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles verz1.Click

FolderBrowserDialog1.ShowDialog()
pfad_source1 = FolderBrowserDialog1.SelectedPath

MsgBox("Folgender Pfad haben Sie gewählt: " + pfad_source1)


verz1pfad.Text = pfad_source1
browseset1 = 1

If browseset1 = 1 Then
verz1pfad.Visible = True
verz2.Visible = True


End If
End Sub


Und in der Form1 will ich den ausgewählten Pfad (pfad_Source1) anzeigen bzw. ausgeben lassen:

Public Class Form1


Private Sub cmdladen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdladen.Click



MsgBox(form2.pfad_source1)

End Sub


Diese Message Box popt auch auf, jedoch ohne Inhalt. Wenn ich die gleiche Message Box in Form 2 laufen lasse, funktioniert es.

Ich wäre super super dankbar, wenn mir Jemand helfen könnte, wie ich meinen Pfad erfolgreich in meine Hauptform (Form1) übergeben kann um damit weiterarbeiten zu können.

Vielen Dank schon im Voraus. Und Sorry für den langen Text;)...

Gruss Reeng
 

Masterclavat

Erfahrenes Mitglied
Du sagst, du findest nur .Net-Lösungen? Das ist doch super, denn du programmierst in Vb.Net. (VB 2003, 2005 und 2008 sind .Net)
 

reeng

Grünschnabel
Ok, danke für den Hinweis;)...Auf jedenfall konnte ich mit den Erklährungen nichts anfangen. Wüsstest du gleich was ich an meinem Code ergänzen muss damit es so funktioniert, wie ich es gerne hätte

Grüessli und Danke

Reeng
 

Masterclavat

Erfahrenes Mitglied
Hast du den Code der Sub "verz1_Click" überhaupt ausgeführt (also das Control geklickt), bevor du den String "pfad_source1" abrufst? Denn bei mir funktioniert es einwandfrei.
 

reeng

Grünschnabel
Hallo Masterclavat

Vielen Dank für deine rasche Antwort. Ich habe vorhin nicht den gesamten Code gepostet, sondern nur den wesentlichen Ausschnitt. Also verz1_click ist ein Button, welcher sich in der Form2 befindet. Ich kann somit einen Pfad auswählen, welcher dann in die Variable pfad_source (In Form2) gespeichert wird. Danach klicke ich in der Form2 auf den Button exit(Code dahinter: me.close() ) kann es sein, dass darum auch die Variablen verlohren gehen? Wenn ja, wie kann ich es verhindern? Ich will in dieser Form2 nur die Pfade auswählen, danach soll sie wieder verschwinden, aber die Variablen sollen bestehen bleiben, damit ich Sie in Form 1 weiterverwenden kann.

Grüessli und Danke

Reeng...
 

reeng

Grünschnabel
Nochmals Ich...

Ich glaub ich habe die Lösung für mein Problem soeben gefunden. Wie oben erwähnt habe ich vermutet, dass ich durch den Klick auf den Buttoen me.close() die Variablen auch verwerfe. Nun habe ich es versucht mit me.hide() ....Dies scheint zu funktionieren. Die Form2 verschwindet und die Variablen bleiben bestehen. Fahre ich mit dieser Lösung so gut, oder muss ich noch was beachten?

Grüessli

René
 

DrSoong

Iss was, Doc!
@reeng: Das dir Masterclavat gerne helfen will ist zwar schön, leider befindest du dich aber hier im falschen Unterforum. Wie Masterclavat schon gesagt hat benutzt du ein VB.NET, damit gehört deine Frage ins .NET-Unterforum.


Der Doc!
 

Masterclavat

Erfahrenes Mitglied
Nochmals Ich...

Ich glaub ich habe die Lösung für mein Problem soeben gefunden. Wie oben erwähnt habe ich vermutet, dass ich durch den Klick auf den Buttoen me.close() die Variablen auch verwerfe. Nun habe ich es versucht mit me.hide() ....Dies scheint zu funktionieren. Die Form2 verschwindet und die Variablen bleiben bestehen. Fahre ich mit dieser Lösung so gut, oder muss ich noch was beachten?

Grüessli

René

Das Hide ist in der Tat eine gute Möglichkeit, dieses Problem zu lösen.
Eine weitere Möglichkeit wäre es, in einem Modul eine/mehrere globale Variable(n) zu definieren.


Ach ja, da das Problem hier schon gelöst scheint, wäre es nett, wenn ein "Zuständiger" dieses Thema mal verschieben würde. ;)