Laden...

Windows Form panel public stelle?

Erstellt von mycitylive vor 14 Jahren Letzter Beitrag vor 14 Jahren 821 Views
M
mycitylive Themenstarter:in
29 Beiträge seit 2009
vor 14 Jahren
Windows Form panel public stelle?

Hallo zusammen kann mir einer mal Tipp geben wie eine Windows Form "panel" public bekomme.

Wenn ich so schreibe


abereich abereich = new abereich();
                    abereich.TopLevel = false; abereich.Name = abereich.Name;
                    abereich.Parent = panel2;
                    abereich.Show(); abereich.Dock = DockStyle.Fill;
                    abereich.BringToFront();
                    abereich.FormBorderStyle = FormBorderStyle.None;
                    this.Hide();

Kommt Fehlermeldung das der Name "panel2" im aktuellen Kontext nicht vorhanden ist

** panel2 liegt in Form1 aber bekomme ich Sie public **


abereich abereich = new abereich();
                    abereich.TopLevel = false; abereich.Name = abereich.Name;
                    abereich.Parent = Form1.panel2;
                    abereich.Show(); abereich.Dock = DockStyle.Fill;
                    abereich.BringToFront();
                    abereich.FormBorderStyle = FormBorderStyle.None;
                    this.Hide();

Da bekomme ich die Meldung

Der zugriff auf WindowsFormsApplication1.Form1.panel2 ist aufggrunde der Sicherheitsebene nicht möglich

Für das nicht statische Feld, die Methode oder Eigenschaft "WinfdowsFormsApplication1.Form1.panel2"" ist ein objektverweis erforderlich.

799 Beiträge seit 2007
vor 14 Jahren

Prinzipiell reicht es wenn du das Panel einfach als public in der Forms-Klasse definierst, aber das ist wahrscheinlich nicht einmal nötig. Was möchtest du denn erreichen?

wo wird abereich definiert, also in welcher Klasse und Methode und in welchem Verhältnis steht diese zu Form1? Außerdem, Form1 ist mit ziemlicher Sicherheit eine Klasse und kein Objekt.

Das sieht mir sehr danach aus als würden Grundlagen fehlen. Probier einmal mit:
Visual Studio Open Book
und siehe auch diesen Thread: Warum die GUI anderen Klassen unbekannt sein sollte

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
M
mycitylive Themenstarter:in
29 Beiträge seit 2009
vor 14 Jahren

Von Form1 wir per click eine neu Form geöffnet "anmeldung" bei eingaben von richtige password wird die Form anmeldung geschlossen und dann soll das neue Fenster "abereich" in der "Form1" panel angezeigt werde.

799 Beiträge seit 2007
vor 14 Jahren

Das Fenster abereich 🤔

Ist das wirklich ein Form oder ist das ein Usercontrol?

Probier es einmal so:

Lege ein Form-Klasse LoginDlg an. Erweitere diese Klasse um Properties die die deine Anmeldungsdaten repräsentieren. Also z.B. Password u. User.

In Form1 legst du dir ein LoginDlg-Form an und rufst es mit ShowDialog auf. Falls der Benutzer OK geklicked hat, überprüfst du die Daten. Falls alles stimmt, zeigst diesen abereich an.

Leg ihn als Usercontrol an und leg ihn in den Hintergrund und Disable ihn. Wenn die Benutzerdaten stimmen, setzt du die Properties:
abereich.Enabled = true;
abereich.BringToFront();

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
T
111 Beiträge seit 2005
vor 14 Jahren

Hallo

ich glaube eher, das das umgekehrt sein muss. Nicht dem neuen Fenster wird das Panel als Parent zugeordnet, sonder das neue Fenster wird als Control dem Panal hinzugefügt.


    abereich abereich = new abereich();
    abereich.TopLevel = false; 
    abereich.Name = abereich.Name;
    abereich.Show(); 
    abereich.Dock = DockStyle.Fill;
    abereich.BringToFront();
    abereich.FormBorderStyle = FormBorderStyle.None;
    panel2.Controls.Add(abereich);
    this.Hide();

Thomas

M
mycitylive Themenstarter:in
29 Beiträge seit 2009
vor 14 Jahren

Das werde ich gleich mal ausprobieren erstmal herzlichen dank

M
mycitylive Themenstarter:in
29 Beiträge seit 2009
vor 14 Jahren

Dies ist Form1

M
mycitylive Themenstarter:in
29 Beiträge seit 2009
vor 14 Jahren

Dies ist anmeldung.cs

M
mycitylive Themenstarter:in
29 Beiträge seit 2009
vor 14 Jahren

Jetzt soll nach der anmeldung die abreich.cs in Form1 panel angezeigt werden