Kann nicht mehr von Form2 auf Form1 zugreifen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Kann nicht mehr von Form2 auf Form1 zugreifen

    Hallo allerseits,

    sitze gerade wieder an einem kleinen Projekt und habe nun folgendes Problem:

    Ich habe zwei Forms (Neue_Kunden und Neue_Adressen). In der Form Neue_Kunden wird eine Variable als

    VB.NET-Quellcode

    1. Public MeineVariable As String

    deklariert. Bisher habe ich immer von Form2 mit

    VB.NET-Quellcode

    1. Label1.text = Neue_Kunden.MeineVariable

    zugreifen können. Irgendwie muss ich in dem Projekt etwas verstellt haben. Der formübergreifende Zugriff klappt nun leider nicht mehr. Im Visual Studio Editor erkennt er die Form Neue_Kunden nicht mehr. Der Teil "Neue_Kunden" des Codes Neue_Kunden.MeineVariable wird mir unterstrichen und der Fehler "Der Ausdruck ergibt keinen Wert" gemeldet.

    Hat jemand von euch eine Ahnung, was ich verstellt haben könnte? Ich suche schon seit einer Stunde fluchend... X( Komisch ist, dass ich auf die gesamte Form Neue_Kunden keinen Zugriff mehr habe. Wenn ich "Neue_Kunden" eintippe, ist diese in den automatischen Vorschlägen nicht mehr drin.
    Wie rufst Du die Form auf? Wird jene instanziiert? Du musst einfach nur ne Property erstellen, deren Wert der Instanz mitgeben und dann das aufrufen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Isch resch misch uff. En ganzes Wochenende. Und er geeehhht!

    Habe den Fehler gefunden. War meine eigene Blödheit. Ich habe in meiner Form Neue_Adressen folgende Sub angelegt:

    VB.NET-Quellcode

    1. Private Sub Neue_Kunden
    2. ...
    3. End Sub


    Die Bezeichnung der Sub "Neue_Kunden" ist aber identisch mit dem Namen der Form "Neue_Kunden". Das führt zu einem Konflikt, den Visual Studio so löst, dass der ursprüngliche Verweis auf die andere Form gecancelt wird und er ihn ohne großen Hinweis stattdessen auf die namensgleiche Sub legt. Da dort die entsprechende Variable aber nicht vorhanden ist, meldet er den Fehler
    "Der Ausdruck ergibt keinen Wert"

    Ähm, was. Deine Architektur scheint mir schon falsch.

    Hast Du das sowas stehen: (?)

    VB.NET-Quellcode

    1. ​Dim frm As New FormName()
    2. frm.Show()
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    In der Form1.
    Klick mich, um zu erfahren, warum alles andere falsch ist.

    Denn dann sparst Du Dir diese ganze Variablen-Sachen und kannst das direkt der Instanz mitgeben.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    So vom Gefühl her gehören

    VB_Noob schrieb:

    Neue_Kunden und Neue_Adressen
    in ein und dieselbe Form, bestenfalls in unterschiedliche GroupBoxen oder Tabs eines TabControls.
    Vielleicht überdenkst Du mal Dein Design.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!