Avatar billede marvinq Nybegynder
13. november 2008 - 09:32 Der er 6 kommentarer og
1 løsning

Flere skærmbillede i et

Hej,

Jeg har et program som kører i fullscreen. Der er flere menupunkter i samme program, men hvordan styres det rent grafisk? For jeg kan jo ikke bare lægge grafik oveni hinanden i en evighed og klare mig ved at skjule eller vise forskellige grafiske elementer.

Der må være et trick?? Men hvordan gør man lige det - Kan man lave flere forskellige grafiske vinduer, og så kalde dem eller hvordan fungerer det?? Det må ikke være sådan at et vindue lukker ned og så et andet åbner. Det skal ske glat.

Hjælp!

/MHQ
Avatar billede Spotgun Seniormester
13. november 2008 - 10:20 #1
Hvis du kører dit program som en MDI container, kan du have flere vinduer inde i programmet. Lidt ala Photoshop hvis man åbner flere billeder samtidigt. Ved ikke om det er noget i den stil du tænker på?
Avatar billede aaberg Nybegynder
13. november 2008 - 12:39 #2
En simpel måde at gøre det lidt smidigere, er at have en PictureBox på din form. Når du skal vise et nyt billede skriver du:

this.pictureBox1.Image = new Bitmap(@"c:\myImg.png");
Avatar billede marvinq Nybegynder
13. november 2008 - 13:45 #3
aaberg_cc:
Er fuldstændig med, men der er ikke kun tale om et billede, men en hel skærm fyldt med knapper,felter,labels,tabeller etc. Og de kan variere både mht. synlighed, størrelse og placering så den dyr simpelthen ikke. Desuden vil det være totalt uoverskueligt i design-editoreren.

spotgun:
Jeg kan desværre ikke kontrollere det lige nu... men det er sikkert i stil med hvad du siger. Forestil dig en browser med faneblade. Der skifter du hele sidens indhold afhængigt af hvilket faneblad du er på. Vil gerne så siderne kan åbnes særskilt i editoren og stadig være overskuelige. (Der er ikke tale om faneblade, men knapper som ændrer indholdet).

Der skal tænkes i lag tror jeg, og det er som du siger ala photoshop ideen tror jeg.

Men så det gode spørgsmål, hvordan laver jeg sådan en container?? Altså jeg har bare startet en "Windows Forms Application" i VS2008...!?

/MHQ
Avatar billede Spotgun Seniormester
13. november 2008 - 17:25 #4
På din hovedform skal du sætte propertien IsMdiContainer til True. Herefter kan du oprette andre forms, og sætte MdiParent til instansen af din hovedform på dem. Så vil de blive hægtet på hovedformen, og kan manipuleres inden for dens rammer. Interaktion mellem de forskellige vinduer, fungerer ganske som om du havde åbnet flere vinduer uafhængigt af hovedformen.

Har lavet et meget simpelt eksempel til dig, der illustrerer hvad jeg mener.
Hent det her: http://leech.clandestine.dk/exp/852658.zip
Avatar billede marvinq Nybegynder
24. november 2008 - 14:02 #5
Hej spotgun,

Det er overordnet rigtigt det du har sendt. Ser rigtig fornuftigt ud. Men... jeg vil gerne at under vinduerne altid åbner i fuldskærm. Det virker umiddelbart, men når jeg flere gange skifter imellem vinduerne, så er nogle vinduer pludselig ikke maksimerede længere... kan det løses??

Her er koden: http://www.marvin.dk/mdi.zip

/MHQ
Avatar billede Spotgun Seniormester
25. november 2008 - 15:24 #6
Lige efter du sætter det pågældende vindue til at kunne ses, skal du blot sætte dets WindowState til at være maksimeret.

w1.Visible = true;
w1.WindowState = FormWindowState.Maximized;

Ser ud til at virke her...
Avatar billede marvinq Nybegynder
16. december 2008 - 13:34 #7
Den er godtaget..

Tak for hjælpen :)

/MHQ
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