29. juli 2004 - 15:55Der er
10 kommentarer og 1 løsning
Overfør et objekt mellem to forms
Hej alle
Jeg har nok en rimelig simplen en her:
Jeg har en mainform som læser fra et personobjekt jeg har lavet. For at oprette en person åbner jeg en ny form og overfør Main objektet selv, så jeg har tilgang til personobjektet fra main i min oprettelsesform.
//Event når der trykkes på en knap i main - en ny form åbner InputPersonForm inputForm = new InputPersonForm(); inputForm.ShowDialog(this);
I den nye form opretter jeg et personobjekt i this: //Når der klikkes opret person = new Person(tboxFirstName.Text,tboxLastName.Text,Convert.ToInt32(tboxAge.Text));
this.close
Men når jeg vender tilbage til min main er mit personobjekt væk...hvordan får jeg det overført korrekt?
.. din form eksisterer stadig efter at du siger close, så efter din "ShowDialog" kan du sagtens kalde en property på din oprettelsesform for at hente dit personobject...
Du kan i øvrigt sætte en DialogResult på dit oprettelsesform, så du kan signalere til mainformen (via retur parameter fra ShowDialog) om brugeren har trykket OK eller Annuller
Men hvad er så meningen med at føre this med over til min nyeform? Jeg tror jeg får løst problemet hvis jeg finder ud ag hvordan jeg får tilgang til personobjektet i min nye form fra min main!
Det skal siges at jeg har 3 klasser i alt: - En person klasse - En main form (der init personklassen) - En oprettelses form (init af personklassen (er dette nødvendigt))
Mainform kan to ting: - Spørge om der er oprettet et personobjekt, hvis der er så vis det. - Kalde oprettelsesform på denne måde: InputPersonForm inputForm = new InputPersonForm(); inputForm.ShowDialog(this);
Oprettelses formen: - Opretter et personobjekt og dette skal sættes lig et personobjekt i mainklassen (formen) = new Person(tboxFirstName.Text,tboxLastName.Text,Convert.ToInt32(tboxAge.Text)); og derefter lukke sig selv this.close();
.. som jeg ser det har du ikke brug for en reference til din mainform i oprettelsesformen... det du skal gøre et at lave en private member på din oprettelsesform og assigne til den når du opretter et personobject.
Du skal derefter lave en property så du fra mainformen kan tilgå det object
ja men det er jo et problem at få adgang til min main form fra min oprettelses form, uden at oprette et nyt mainform objekt i oprettelsesformen....du må undskylde hvis jeg misforstår.
Jeg har gjort som du siger og jeg kan kun få fat i mine properties fra oprettelsesformen hvis jeg opretter en ny main, og det er jo forkert da det allerede eksistere, og det er det jeg skal have fat i (det er vel også derfor man skal overføre this til oprettelsesformen)!
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.