Avatar billede j3ppah Novice
07. april 2008 - 13:32 Der er 22 kommentarer og
1 løsning

c# load design forms ?

Sidder med et lille problem... det er sikkert supernemt hvis man lige kender syntaxen....

Vi siger fx. jeg har 2 design forms...
på 1 design er der en knap i bunden.
Hvis man trykker på denne knap skal den skifte til design form2.

Lettere bliver det vidst ikke... men hvad skal man skrive for at få den til at skifte design form?...
Avatar billede j3ppah Novice
07. april 2008 - 13:34 #1
altså forestil jer det fx, er et spil. hvor der også kommer en text box som den selvfølgelig matcher op mod et svar, og så knappen checker op på det... hvis svaret = true, skal den skifte til design form 2, (level 2) fx...
Avatar billede mr_falle Nybegynder
07. april 2008 - 13:53 #2
Kode:
Form2 open_form2 = new Form2();
open_form2.Show();
Avatar billede lasserasch Juniormester
07. april 2008 - 13:55 #3
Ok, hvis jeg forstår hvad du vil, så er det :

1. Du har 2 forms.
2. Du vil fra form1 kunne åbne form2 med et knaptryk på form1.

Det gør man sådan her :

private void button1_Click(object sender, EventArgs e)
        {
          Form2 newform = new Form2();
          newform.ShowDialog();
        }


/Lasse
Avatar billede lasserasch Juniormester
07. april 2008 - 13:55 #4
Øv, der var jeg vist ikke hurtig nok ;-)
Avatar billede j3ppah Novice
07. april 2008 - 14:36 #5
Form2 open_form2 = new Form2();
open_form2.Show();

får form 2 til at poppe up, men det skal være sådan at form 1 skifter til form 2.
Eller hvis dette ikke kna lade sig gøre... så bare så den lukker form 1 og åbner form 2.
Avatar billede lasserasch Juniormester
07. april 2008 - 14:48 #6
Hvis du bruger .ShowDialog() i stedet for .Show() så er du sikker på at form2 hele tiden har fokus.

Du kan ikke umiddelbart lukke form1, da det vil lukke din tråd. Så skal du i hvert fald ud i noget lidt mere langhåret, hvor programmet starter fra en anden tråd end form1 åbnes fra.

Men du kan gemme form1.

F.eks. sådan her :


private void button1_Click(object sender, EventArgs e)
        {
          Form2 newform = new Form2();
          this.Hide();
          newform.ShowDialog();
        }



Men hvis form2 så bliver lukket, så kommer form1 ikke op igen.
Hvis du skal have den til at gøre det, så skal du oprette en reference af Form1 på Form2 og lave et event på Form2 som får Form1 til at dukke op igen når Form2 lukkes.


Her koden til Form1 :

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
            Form2 newform = new Form2();
            newform.Init(this);
        }
    }


og her koden til Form2 :

public partial class Form2 : Form
    {
        private Form1 F1;
        public Form2()
        {
            InitializeComponent();
            this.FormClosed += new FormClosedEventHandler(Form2_FormClosed);
        }

        void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            F1.Show();
        }
        public void Init(Form1 F2)
        {
            this.F1 = F2;
            this.ShowDialog();
        }
    }

/Lasse
Avatar billede j3ppah Novice
07. april 2008 - 14:58 #7
Altså form 1 skal ikke åbnes hvis form 2 lukkes eller lignende... altså det er ganske simpelt...

Hvis man trykker på knappen i form 1, skal den skifte til form 2.... osv.osv.
altså det kommer til at være som levels i et spil...
så hvis du er færdig med level 1 skal du jo ikke tilbage der til igen...

Så den skal bare skifte til form 2, og form to skal så kunne skifte til form 3...
HVIS man selvfølgelig trykker på rigtig knap, (som kommer til at se op mod et txt felt, osv osv.)
Avatar billede j3ppah Novice
07. april 2008 - 15:20 #8
hovsa...
bruger bare den du skrev...

Form2 newform = new Form2();
          this.Hide();
          newform.ShowDialog();

Den kan bruges til mit formål....
Bare smid et svar :)lasse
Avatar billede skov_p Praktikant
07. april 2008 - 20:08 #9
Usercontrols havde vel været en mulighed. Så beholder man sin form, men skifter usercontrol.
Avatar billede lasserasch Juniormester
07. april 2008 - 23:30 #10
Ok hermed svar.

Men jeg vil give skov_p ret. Det er nok en lidt forkert indgangsvinkel du tager til projektet, hvis det er meningen af man skal gå fra 1 til 2 og fra 2 til 3 osv...

Usercontrols er et meget bedre løsning.

Men det er bare min mening...

/Lasse
Avatar billede j3ppah Novice
08. april 2008 - 08:16 #11
Er der så en af jer der kan forklare mig hvordan man bruger denne såkaldte "Usercontrols" ???... lasserasch du har allerede sikret dig points pga. du har brugt tid på dette. men hvis en af jer lige kan forklare usercontrols, får skov_p også points
Avatar billede lasserasch Juniormester
08. april 2008 - 09:02 #12
Jeg laver lige en stump kode til dig som du kan kigge på. Poster et link lidt senere...
Avatar billede lasserasch Juniormester
08. april 2008 - 09:42 #13
Har lavet et eksempel du kan kigge på. Meget simpelt, men viser grundprincippet i at bruge usercontrols...

Kan downloades her :

https://castest.sdu.dk/upload/download.php?id=HydtwruNnZXj9qkFQvDc1c8daXiW3woFo4KmTNo4jhtur8EjmOqOjEhOyRvFT6VitundhSpRLTJNO4fSMbv9KQ%3D%3D


/Lasse
Avatar billede skov_p Praktikant
08. april 2008 - 09:53 #14
En button er en Control, men skulle du få brug for en control der ikke finden i VS kan du lave dine egne.
Jeg har feks. en IpTextBox som kan bruges til at indtaste en IP adresse.
Den kan jeg trække ind på min form lige som en knap eller også oprette den RunTime.
Avatar billede j3ppah Novice
08. april 2008 - 10:27 #15
kører med visial c# 2005.. så kan ikke åbne den.... :S
Avatar billede skov_p Praktikant
08. april 2008 - 10:40 #16
Lav et nyt projekt men en form
Højreklik på dit projekt og vælg "Add">"UserControl"
Nu kan du feks. lægge 2 tekst bokse og knapper til at lave en login control.
Når du gemmer din projekt kan du trække din UserControl over på din form og du har en let måde at tilføje login funktionalitet til din applikation
Avatar billede lasserasch Juniormester
08. april 2008 - 11:21 #17
Du kan køre exe filen fra debug biblioteket og se det køre.

Så vidt jeg ved er det kun soulution filen i VS der er forskellig fra 2005 til 2008. Så du kan bare åbne projektfilen fra "Usercontrol Example" i stedet for.

/Lasse
Avatar billede j3ppah Novice
08. april 2008 - 12:43 #18
kan sku ikke lige få den åbnet... prøver lige at hente 2008
Avatar billede lasserasch Juniormester
08. april 2008 - 13:08 #19
Beklager, jeg har lige reinstalleret min pc med vista, så var det naturligt at opgradere vs til 2008. Men kan da godt se at det gir' problemer hvis man skal poste eksempel koder her så :-)
Avatar billede j3ppah Novice
10. april 2008 - 08:10 #20
ja :)... men ved du hvad.. i får points... og tak for hjælpen... fik aldrig usercontrol til at virke.. og ville jeg meget gerne have... så kunne være super fedt hvis en af jer kunne poste lidt mere om det...
Avatar billede j3ppah Novice
10. april 2008 - 08:12 #21
skov p. http://www.eksperten.dk/spm/827231  der er points til dig.
Avatar billede lasserasch Juniormester
10. april 2008 - 08:32 #22
Prøv lige denne her :

https://castest.sdu.dk/upload/download.php?id=fp9e0AJKp5CzK4%2B2hUgTl6f1Iujh3ve5L0F05QYuyHKCanJtF0GEZS1C2ezPebKeNJ40k%2FiRQGkJ6GKcdVokiH8%2FKqBQU%2Bwcn7cyqj8tqb0%3D

Tror nok jeg har fået downgraded min soulution til VS 2005, men er ikke helt sikker :-)


/Lasse
Avatar billede j3ppah Novice
10. april 2008 - 13:29 #23
forresten :).. hvis i vil se hvad jeres hjælp har ført til kan i lige smide mig på msn: DREAMKILLER000 ( a ) ofir.dk
så kan jeg da lige sende spillet :P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester