Avatar billede hansa Nybegynder
16. august 2003 - 22:31 Der er 15 kommentarer og
1 løsning

Vinduer i C#

Hej,

Hvordan håndterer man normalt flere vinduer i C#?
Jeg har kigget både på split window og MDI, men det er ikke helt det jeg er ude efter.

Jeg vil gerne vide hvordan man normalt skifter fra et vindue til et andet i C#

F.eks. hvis jeg har en knap der hedder "opret ny medarbejder", der skal åbne et nyt vindue. Hvordan gøres dette?
Avatar billede omen Nybegynder
16. august 2003 - 22:37 #1
Form f = new FormName();
  f.Show();
Avatar billede hansa Nybegynder
16. august 2003 - 23:04 #2
Jeg fik vist ikke forklaret mig helt præcist.
Det jeg gerne vil have, er at jeg fra et vindue kan åbne et andet.
Begge vinduer skal bare være i samme applikation/frame, så jeg ikke får åbnet 2 vinduer uafhængigt af hinanden.
Avatar billede burningice Nybegynder
16. august 2003 - 23:11 #3
hansa>> du siger at MDI ikke helt er det du er ude efter, men du vil alligevel åbne et vindue der er afhængig af det første ?! i så fald, så kan du bruge ShowDialog(), eller også har du misforstået hvad MDI er for noget.

Prøv at kig lidt i din SDK, der står en masse om MDI

ms-help://MS.NETFrameworkSDK/cpqstart/html/cpsmpnetsamples-windowsformsmdi.htm
ms-help://MS.NETFrameworkSDK/cpguidenf/html/cpconWinFormsLayoutOptions.htm
Avatar billede hansa Nybegynder
16. august 2003 - 23:22 #4
cyberfessor>> jeg må indrømme jeg ikke har sat mig særlig meget ind i MDI.
Som jeg har forstået MDI, så giver det muligheden for at have flere vinduer åbent på samme tid inden i en "frame". Lidt som man kan have flere dokumenter åbent i fx Word.

Det jeg gerne vil have, er et skift fra et vindue til et andet i samme frame, hvor kun et er synligt af gangen.
Avatar billede burningice Nybegynder
16. august 2003 - 23:30 #5
hansa>> altså noget i retningen af det her ??

Form f = new DinForm();

this.Hide();
f.Show();

Du har ret i, at MDI bruges til at kunne definere sine vinduer som childs til et mainvindue, og på den måde få mere kontrol over åbne forms, modsat SDI, hvor man som programmør ikke rigtig har styr på alle de åbne forms.
Avatar billede hansa Nybegynder
16. august 2003 - 23:35 #6
Nu er vi tæt på løsningen :o)

Nu har vi kun 1 vindue synligt ad gangen.
Er det ikke muligt at "f" bliver vist i det første vindue?
Dermed vil alle vinduer også have samme størrelse, placering, osv.
Avatar billede omen Nybegynder
16. august 2003 - 23:37 #7
Er det et child vindue du tænker på? Altså et nyt vindue, inde i det første vindue?
Avatar billede hansa Nybegynder
16. august 2003 - 23:39 #8
Ja, et helt nyt vindue. Det første vindue skal gemmes midlertidigt (hide).
Avatar billede burningice Nybegynder
16. august 2003 - 23:41 #9
hansa>> uhm.. joo... du kan f.eks. sætte en "Form parent" paremeter ind i din constructor, så formen f bliver åbnet på denne måde:

Form f = new DinForm(this);

this.Hide();
f.Show();

inde i constructor-proceduren i formet DinForm skriver laver du dette krumspring:

this.Bounds = parent.Bounds;
Avatar billede burningice Nybegynder
16. august 2003 - 23:42 #10
på den måde bliver størrelsen og positionen af den nye form den samme som den form der åbnede den.
Avatar billede hansa Nybegynder
16. august 2003 - 23:51 #11
Det virkede... ihvertfald med størrelsen (ikke position) :o)

Jeg synes det er underligt man ikke bare kan åbne begge vinduer i samme vindue.
I Java ville jeg bare oprette en JFrame, som kan indeholder paneler (forms i C#). I framen kan man så tænde og slukke paneler.

Jeg havde håbet C# havde samme funktion :o)
Avatar billede hansa Nybegynder
16. august 2003 - 23:52 #12
Smider du ikke et svar cyberfessor, så du kan få dine point
Avatar billede burningice Nybegynder
16. august 2003 - 23:56 #13
hansa>> well... lokationen burde du så kunne sætte sådan her:

this.Location = parent.Location;

Nu har jeg ikke arbejde helt vildt meget med GUI-programmering i Java, og i C# har jeg aldrig haft brug for det du her er ude efter, så jeg kan ikke på stående fod sige om der findes en nemmere/bedre løsning. For mig virker MDI som det du søger, men alligevel ikke. Hvis jeg vidste helt præcis hvad det skulle bruges til og hvordan det skulle virke i praksis, så måske jeg kunne komme med en løsning :)
Avatar billede hansa Nybegynder
17. august 2003 - 00:00 #14
Jeg vil såmænd bare lave en lille applikation, hvor man kan oprette, opdatere, slette og oprette medarbejdere. Her var min ide så at have et vindue til hver af disse punkter.
Avatar billede burningice Nybegynder
17. august 2003 - 00:05 #15
fair nok... der vil jeg dog have brugt ShowDialog(), der gør, at man ikke kan komme tilbage til den form der åbnede formen, før man har lukket den igen.
Avatar billede burningice Nybegynder
17. august 2003 - 00:05 #16
lidt ala Help>About i Internet Explorer f.eks. :)
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