Auf eine Varraible zugreifen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Auf eine Varraible zugreifen

    Guten Tag, ich bins mal wieder mit
    einer bloeden Frage ^^

    Ich fange mal direkt an: Ich bin dabei ein
    Programm zu basteln mit dem ich aus einer Datenbank
    bestimmte Werte von Usern abfrage nun.. das klappt
    bis jetzt auch alles schoen und gut nur bin ich an einen
    Punkt angelangt wo ich beim Login ( bei der Login Form )
    eine Varriable fuer die 2te Form setzen bzw aendern muss.
    Das Problem ist ich bin ein totaler Anfaenger und weiss nicht
    wie ich auf Varriablen von 2 verschiedenen Formen zugreifen kann.
    Ich hab es so versucht wie mit den Controls und zwar so:

    Form1.ID = Zeile.Item(0)

    Doch so bekomme ich nur einen Fehler:

    "Panel.Form1.ID" ist in diesem Kontext nicht zugreifbar,
    da es "Private" ist.

    Waere nett wenn mir einer helfen koennte :)
    Einfach wäre, wen du ein Modul zum Projekt hinzufügst und in diesem dann die für alle Formen verfügbaren Variablen als Public deklarierst.
    Auch möglich wäre in einem Modul etwas wie:

    Public Sub Soundso()
    messagebox.show("Blubb")
    End Sub

    Diese Sub kann dann aus jeder Form aufgerufen werden mittels Soundso().
    Mag sein, entspricht aber nicht der VS2010-Philosophie.
    Modul ist historisch gewachsen und gehört in das Geschichtsbuch.
    Gib Deinem Projekt eine Datenklasse (kein Modul) und gestalte die Variablen dort als Property.
    Gib jedem, der auf die Daten zugreifen muss, eine Instanz dieser Klasse mit und fertig.
    So kannst Du ganz nebenbei mehrere Instanzen dieser Klasse erstellen und parallel Daten gleicher Art verwalten.
    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!
    Das hängt von der Anzahl der Instanzen ab.
    Ein Modul ist praktisch identisch mit einer Instanz einer äquivalenten Klasse.
    Aber das sollte Dich nicht kümmern, Du solltest Dich um eine ordentliche objektorientierte Programmierung kümmern, und da das Modul out.
    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!
    Ich denke ich werde doch für den Anfang die "veraltete" Methode nutzen da
    sie für Anfänger leichter zu verstehen ist. Das soll nicht heißen das ich die
    Grundkenntnisse falsch lernen möchte sondern erstmal an die Programmier-
    Sprache langsam ran tasten möchte und mehr Wert auf Verständnis lege als
    auf die Sauberkeit des Codes bzw. ob die Funktion nun uralt ist oder halt auf
    den neusten Stand ;)

    Danke für eure Antworten.
    @RodFromGermany:
    Dann habe ich aber noch eine Off Topic Frage:
    Gibt es eine Möglichkeit Extension Funktionen und Methoden ohne Modul hinzubekommen?
    Bilder
    • Unbenannt2.png

      10,53 kB, 414×279, 98 mal angesehen
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Tja, es stimmt einfach nicht, was Rod sagt.
    Module haben durchaus noch gelegentlich ihre Berechtigung. Etwa, wies der TE haben will, dass man dort eine Instanz des Datenmodells anlegt, und dieses Datenmodell ist dann global in der Anwendung verfügbar.

    So ein globales Datenmodell ist eine der wenigen Möglichkeiten (und zwar die einfachste) Datenredundanzen zu vermeiden, etwa wenn in mehreren Forms dieselben Daten verarbeitet werden sollen.

    Und Extension-Methods gibts in VB halt nur in Modulen (in c# nur in static Classes, was annähernd dasselbe ist)