Überlagerte Panels



  • Hallo ich bin gerade dabei ein kleines Programm in C# zu schreiben, jedoch bin ich
    auf ein kleines Problem gestoßen.. 😕

    ich habe in meinem Programm 2 Buttons und 2 Panels. (so ähnlich wie Registerkarten)
    Button1 & Panel1; Button2 & Panel2;

    wenn ich auf den Button1 klicke ist Panel1.Visible = true und Panel2.Visible = false;
    wenn ich auf den Button2 klicke ist Panel2.Visible = true und Panel1.Visible = false;
    Das funktioniert alles soweit, solange die Panels nicht übereinander liegen.

    Aber jetzt zu meinem Problem
    Da diese beiden Panels an der selben Stelle sind wird ständig das Panel2 als so eine art "Child" von Panel1 gesehen und es ist nur sichtbar wenn Panel1 bereits sichtbar ist.

    hab keine Ahnung was ich da machen kann.. hoffe ihr könnt mir helfen.. 🙂



  • Code Please



  • public partial class Form1 : Form
        {
            Panel p1, p2;
            public Form1()
            {
                InitializeComponent();
    
                Button btn = new Button();
                btn.Text = "toggle";
                Controls.Add(btn);
                btn.Click += (o, e) => togglePanel();
    
                p1 = new Panel();
                p1.BackColor = Color.Red;
    
                p2 = new Panel();
                p2.BackColor = Color.Green;
    
                p1.Location = p2.Location = new Point(0, btn.Height);
            }
    
            void togglePanel()
            {
                if (Controls.Contains(p1))
                {
                    Controls.Remove(p1);
                    Controls.Add(p2);
                }
                else
                {
                    Controls.Remove(p2);
                    Controls.Add(p1);
                }
            }
        }
    

    Es funktioniert aber auch so wie von Dir beschrieben ohne Probleme.
    Du hast wahrscheinlich eines der Panels versehentlich in die Controls-Collection des anderen gesteckt.



  • Danke für die schnelle Antwort 🙂 jetz funktionierts.


Anmelden zum Antworten