Globale Variablen zu deklarieren in vb
Den Benutzer auf eine Schaltfläche klickt, wird ein neues Formular erzeugt wird, wo der Benutzer sein/Ihr Passwort? Wie kann ich eine Kopie im Arbeitsspeicher des Benutzername?
Z.B. in web-Formulare, kann ich einfach Session ("User"). Wie kann ich replizieren diese mit winforms?
Dank
- FYI: Sie sollten wahrscheinlich vermeiden, dies zu tun, so viel wie möglich, sondern übergeben Sie die Informationen, um in Ihrer Anwendung.
- Stärker als das, was John sagte: Sie sollten sich niemals tun Sie dies, Ende der Geschichte. Sie müssen sich nie.
- Wie kann ich pass den Informationen rund um meine Bewerbung? Ich habe versucht, mit öffentlichen Funktionen, aber ich nicht scheinen, um die übergabe von Variablen durch verschiedene Formen
- Ich bin damit einverstanden, dass es möglicherweise schlechtes design, aber ich glaube nicht, dass dies etwas ist, Sie sollten nicht immer tun.
- Fügen Sie ein Modul zu Ihrem Projekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könntest du eine statische (Shared in VB .NET) Objekt
Beispiel
Können Sie dann Zugriff auf diese durch den Aufruf
Da scheint es einige Bedenken, die sich rund um ob oder nicht, dies ist eine gültige Implementierung, die ich werde erklären, warum dies ist nicht die beste Idee.
Dieser erstellt eine einzelne Instanz der
SessionInformation
was bedeutet, dass, wenn es geändert wurde, überall in das Programm wirkt sich auf den rest des Programms.Aufrechterhaltung der Objekt-Persistenz kann schwierig sein, wenn Sie nicht mit einer Datenbank (SQL, Access, Datei etc...), um eine out-of-memory-Kopie des Objekts, das Sie abrufen möchten, und zu einem späteren Zeitpunkt. Der einfachste Weg, um dies zu implementieren, wäre die Nutzung einer SQLCE Datenbank, die Leben in Ihrer Anwendung Ordner und Verwendung von standard-T-SQL zum speichern der Informationen, die Sie benötigen. Aber in dem Fall ein Passwort das vielleicht nicht ideal wegen der Sicherheit Fragen.
Oder der bessere Weg für die Protokollierung von in-und out-Benutzer zu nutzen, die
System.Security.Principal
Namespace zu erstellen, die ein Benutzer für Ihre Anwendung.Brauchen Sie nicht eine Entsprechung zu den
Session
Objekt in web-Anwendungen. Sitzungen sind nur erforderlich, weil web-Anwendungen tatsächlich haben Zugriff auf Variablen über Prozessgrenzen hinweg (= eine session bei einer web-Anwendung umfasst mehrere Anfragen eines Nutzers an einen web-server, und historisch jede Anfrage begann eine neue Anwendung!).In einer "normalen" Anwendung, dies ist nicht der Fall – alle nicht-lokalen variable zu tun. In deinem speziellen Fall, würde es Sinn machen, für die Passwort-Formular, um eine Eigenschaft, die enthält den Benutzernamen. Der Benutzer gibt dann den Benutzernamen und das Passwort, und der Anrufer dieses Formular Passwort abrufen können der Benutzername ist:
Innerhalb der
PasswordForm
gibt es so etwas wie dieses:Konnten wir erhalten mehr anspruchsvolle, aber dies zu tun.
Wenn Sie brauchen, um die Wiederverwendung der Benutzername in der Anwendung, sind die Chancen, dass Sie auch brauchen, um zu teilen andere Informationen über den Benutzer (was werden Sie arbeiten? ...). Dies ist, kurz gesagt, die Zustand der Anwendung und es ist in der Regel ein Objekt repräsentiert den Zustand. Dies wäre der richtige Ort, um zu speichern den Benutzernamen als gut.
Wenn Ihre Anwendung hat nur eine andere form (der "Hauptdialog"), dann verwenden Sie einfach eine private variable in das Formular zum speichern des Benutzernamens. Keine Notwendigkeit für eine Globale variable.
Einfach eine öffentliche variable, auf die Formen, nie entfernen Sie das Formular und die Daten aus diesem Formular mit formname.variablename (definiert als "öffentlich" in form-Ebene).
Diese auch erreicht werden kann, mit den Kontrollen, wenn Sie diese öffentlich.
BEVOR DIE FLAMMEN: diese OP löst Probleme, wenn, wenn dieser optimal ist, gut oder irgendetwas anderes, ist ein anderes problem.