Variable übergeben, Form wird geschlossen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von weedl.

    Variable übergeben, Form wird geschlossen

    Hi leute,

    ich hätte da mal eine kleine Frage. Ich habe auch schon gesucht, speziell für mein prob aber keine funktionstüchtige lösung finden können.

    Zu meinem Problem:

    Ich habe eine Form4 in der eine Variable angelegt und definiert wird:

    VB.NET-Quellcode

    1. Public tabelle As String = ""
    2. If ComboBox1.SelectedItem = "Tony" Then
    3. tabelle = "Tabelle1"
    4. End If
    5. If ComboBox1.SelectedItem = "Christina" Then
    6. tabelle = "Tabelle2"
    7. End If


    Jetzt habe ich das Problem, dass ich diese Variable auch in allen anderen Formen brauche. Die Form4 wird aber geschlossen.

    Habt ihr eine Idee?

    Danke & Viele Grüße!
    Mach dir eine Globale Variable. Die kannst du dann von allen Formen aus bedienen.

    Public MeineVariable As String = Nothing

    Aus Form 4 raus

    VB.NET-Quellcode

    1. If ComboBox1.SelectedItem = "Tony" Then
    2. MeineVariable = "Tabelle1"
    3. End If
    4. If ComboBox1.SelectedItem = "Christina" Then
    5. MeineVariable = "Tabelle2"
    6. End If
    Vielleicht wäre ein Modul eine Lösung für dein Problem. Füge dem Projekt einfach ein Modul hinzu mit folgendem Code:

    VB.NET-Quellcode

    1. Module Module1
    2. Public tabelle As String
    3. End Module

    Fortan kannst du von jeder Form auf die Variable über "Module1.tabelle" zugreifen. Dann bist du unabhängig von den Forms und kannst auch das ein oder andere schließen. Trotzdem kannst du noch auf deine Variable zugreifen.
    Gnampf.
    Form als DIALOG öffnen und beim schließen die gewünschte(n) Werte zurückgeben.
    Public Shared hat seinen Sinn, aber man sollte es nicht gleich dann verwenden, wenn man nach 2 Sekunden überlegen keine andere Lösung findet
    @ Enixus Das klingt doch schonmal ganz gut. Ich habe jetzt dein Module-Code unter Public Class Form4 eingefügt. Nur bekommen ich jetzt einen fehler, das Module-Anweisungen nur auf Namespace- oder Dateiebene verwendet werden kann.. ? ? ?



    @ Bern mit Public Shared will es auch nicht so recht funktionieren. habe ich auch schon probiert.

    weedl schrieb:

    @ Enixus Das klingt doch schonmal ganz gut. Ich habe jetzt dein Module-Code unter Public Class Form4 eingefügt.


    Ne, so geht das nicht...

    Klick mal oben im Menü auf "Projekt", dann auf "Modul hinzufügen". Dann einfach rechts unten noch einmal mit "Hinzufügen" bestätigen. Dann hast du das "Modul1" oben rechts im Projektexplorer. Das kannst du genauso wie ein Klasse bearbeiten.

    Der Unterschied zu einer Klasse ist jedoch der, dass man keine Instanz davon erstellen kann. Das Ding existiert direkt. Das widerspricht ein wenig der objektorientiertheit, kann aber manchmal ganz hilfreich sein. Vom Grundsatz her würde ich aber auch versuchen das Projekt so aufzubauen, dass man das gar nicht so braucht. Das würde aber wahrscheinlich dein ganzes Projekt jetzt durcheinander bringen. :)
    Ich habe jetzt des Rätsels lösung. Mit dem Modul hat es super funktioniert.

    Problem gelöst.

    @ bernd es kam keine fehlermeldung. das ging schon alles klar. nur haben die anderen formen nicht darauf zu greifen können. also im endeffekt das selbe wie Public. Aber ich habe es ja jetzt mit einem Modul hinbekommen.


    Vielen Dank für eure zahlreichen hinweise.

    Gruß Weedl