c # - Sådan bruges flere formularer i et Csharp-panel i et Windows-panel?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bygger en kids learning program, hvor jeg klikker på en knap på panelet, vil jeg vise forskellige former på samme sted i panelet. Kan du venligst hjælpe med nogen gennemgang eller tutorial links?

Bedste reference


Dette spørgsmål skulle have været sendt på Stackoverflow hjemmeside i stedet for her.


Men du kan bruge denne fremgangsmåde til at håndtere sagen.


            subForm = new SubFormYouWantToLoad();
            subForm.TopLevel = false;
            subForm.FormBorderStyle = FormBorderStyle.None;
            ContainerPanel.Controls.Add(subForm , 0, 1);
            subForm .Visible = true;


Du kan tilføje denne kode, når du klikker på den specifikke knap.
Her tilføjes hver underform til panelet som en kontrol. Du skal fjerne underformen fra panelets kontrolliste, før du tilføjer en anden underform. Det er derfor bedre at fjerne, lukke og bortskaffe den første.


        ContainerPanel.Controls.Remove(activeform);
        activeform.Close();
        activeform.Dispose();

Andre referencer 1


I stedet for Forms bruger brugerkontroller og indlæse dem i paneler


Prøve, hvis du vil vise usercontrol1


panel1.Controls.Clear();
panel1.Visible = true;
UserControl1 usr1 = new UserControl1();
usr1.Show();
panel1.Controls.Add(usr1); 


Hvis usercontrol2


panel1.Controls.Clear();
panel1.Visible = true;
UserControl1 usr2 = new UserControl2();
usr2.Show();
panel1.Controls.Add(usr2); 

Andre referencer 2


Du kan oprette en række formularer som brugerkontrol eller en kontrol, der arver fra et panel. Derefter har en forælder formular med et panel for at holde brugerens kontrol. Du kan derefter ændre den aktive brugerkontrol i beholderen, når panelet skal ændres.


Der er en tutorial på msdn for at skabe brugerkontrol.


http://msdn.microsoft.com/en-us/library/a6h7e207(v=vs.71).aspx[8]

Andre referencer 3


Jeg brugte denne kode til at lukke formularen på panelet, men ikke fungerede.


private void button12\_Click(object sender, EventArgs e)
    {
        dontShowPANEL();
        //ActiveForm.Close();
        MainImaginCp kj = new MainImaginCp();
       //kj.Visible = false;
        kj.panel2.Controls.Clear();
        panel1.Visible = true;
        EngABCLearning usr1 = new EngABCLearning();
        usr1.Show();
        kj.panel2.Controls.Add(usr1); 
        //kj.Focus();
    }


Og jeg brugte følgende kode til at vise formularen i panelet.


private void toolStripMenuItem1\_LR\_ENG\_Click(object sender, EventArgs e)
    {
        //kids.Form2 hj = new kids.Form2();
        //hj.Show();


        EngABCLearning gh = new EngABCLearning();
        //gh.Show();
        gh.TopLevel = false;
        gh.FormBorderStyle = FormBorderStyle.None;
        //Panel2.Controls.Add(subForm, 0, 1);
        panel2.Controls.Add(gh);
        gh.Visible = true;
    }


Dette lukker min hovedformular og afslutter ansøgningen.

Andre referencer 4


prøv dette ud, jeg har indlæst to former inden for et enkelt panel


private void Form1\_Load(object sender, EventArgs e)
    {
        Form2 f1 = new Form2();
        f1.TopLevel = false;
        f1.AutoScroll = true;
        panel1.Controls.Add(f1);
        f1.Dock = DockStyle.Left;
        f1.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        f1.Show();
        //form2
        Form3 f2 = new Form3();
        f2.TopLevel = false;
        f2.AutoScroll = true;
        panel1.Controls.Add(f2);
        f2.Dock = DockStyle.Left;
        f2.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        f2.Show();



    }