Hat dir diese Antwort geholfen?
Also: Du machst dir einfach noch ein extra Module, was du als Startpunkt festlegst. Darin rufst du jedes Form einzeln mit Application.Run auf. Die Forms an sich schließt du dann ganz normal mit Close()
Imports System
Imports System.Windows.Forms
Module Module1
Dim value As String
Sub Main()
value = ""
Application.Run(New Form1())
Application.Run(New Form2(value))
End Sub
Sub ReportResult(ByVal s As String)
value = s
End Sub
End Module
Form1 hat ein Label (das zur Eingabe des Namens auffordert) und eine Textbox (wo der Name dann eigegeben werden soll). Und nen Button. Der Code sieht bei mir so aus:
Public Class Form1
Public Sub New()
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Protected Overrides Sub Finalize()
MyBase.Finalize()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Module1.ReportResult(TextBox1.Text)
Me.Close()
End Sub
End Class
Und Form2 hat einfach nur ein Label, das den Wert enthält, der in Form1 eingegeben wurde. Und nen Button zum Schließen.
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Public Sub New(ByRef val As String)
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Label1.Text = "Hallo " + val
End Sub
Protected Overrides Sub Finalize()
MyBase.Finalize()
End Sub
End Class