[vb.net] Variable an ein Formular übergeben

Gepostet am: Apr 20, 2011 8:1:36 PM

Ein häufiges Problem und immer wieder gern gestellte Frage ist, wie man eine Variable an ein anderes Formular durchreicht. Dazu bekommt man immer wieder schwindelerregende Antworten, wie die Variable global zu deklarieren, oder von Form1 in ein Textfeld von Form2 zu schreiben und von dort wieder auszulesen usw. In Access und Co. gibt es dazu die recht einfache Methode der OpenArgs um Parameter zu übergeben. VB.net bietet etwas vergleichbares nicht an, aber eine - meiner Meinung nach - mächtigere Lösung, die ich kurz vorstellen möchte:

Die schönste Methode ist es die Eigenschaft des zu öffnenden Formulars um Eigenschaften bzw. Methoden zu erweitern. 

Dafür benötigt man im zu öffnenden Formular folgenden Code:

zu öffnendes Formular

Public Class UF_Webseite      'für das Öffnen des Formulars ohne Parameter     Public Sub New()         InitializeComponent()     End Sub      'für das Öffnen des Formulars mit Parameter     Public Sub New(ByVal strUrl As String)         InitializeComponent()         ' die Url aufrufen         Me.myWebbrowser.Navigate(strUrl)     End SubEnd Class

Im Konkreten erweitert man in diesem Fall die Möglichkeit das Formular 'UF_Webseite' mit dem Parameter strUrl zu öffnen. Parallel dazu steht die Möglichkeit offen, das Fenster ohne Parameter zu öffnen.

Aufruf des Formulars mit und ohne Übergabeparameter

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Dim frm As UF_Webseite = New UF_Webseite("www.google.at")

       frm.Show()     End Sub      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click         Dim frm As UF_Webseite= New UF_Webseite()

       frm.Show()     End Sub