23. december 2005 - 12:45Der er
4 kommentarer og 1 løsning
Child Parent events - minimer og maximer et child
jeg sidder og skriver et program hvor jeg tilføjer nogle childs, hele ideen er at der skal tilføjes fler childs af gangen, men når jeg maximere min Parent Form, bibeholder mine childs deres størrelse og placering lidt for nøje!
mine chlids er selvfølgelig windows forms, og jeg tilføjer disse childs til Controls i et panel, i min Parent Form.
når jeg minimere mine childs lægger de sig i bunden af panel som de skal, men jeg vil gerne have at de også ligger i bunden af mit panel når jeg maximere Parent, og det samme når Parent er maximeret, og windowstate på Parent skiftes til "normal"!
yderligere ville jeg spørge om der er en der tilfældigvis ved hvordan man laver et event modsat, dvs. at jeg har lavet en event på mine child der gør at min parentform køre en funktion når et child lukkes(Interaktiv parent er ideen!), men er der nogen det ved hvordan man får et child til at køre en funktion når der sker et event på Parent!
det var et design spørgsmål, jeg havde lagt tilføjet mine childs til "Controls" på et panel, det skal man bare lade være med, så kan "Form" selv håndtere det til et vist punkt... der er lidt slam kode fra MS side, men ideen er at programmet skal fungere lidt som office produkterne, og det gør det!
hvad angår funktion afvikling på childs: mine childs lå i et array af Forms, hvor jeg så tilføde og fjernede disse dynamisk.
det jeg ville have var at kunne kalde en funktion jeg havde lavet på en form fra parent, men når man skal køre en funktion på et standart object(mangler ord til at beskrive det!) fx...
Form[] foo = new Form[3]; foo[1].udførEnFunktionPåChildFormen();
fejler systemet fordi det ikke er sikkert at objektet har denne funktion, det eneste man kan være sikker på eksistere er funktionalitet på objekter af typen "Form"!
måden jeg løste det på(for jeg er sikker på at der er andre måder!) var at jeg lavede en ny klasse som extendede Form og lavede de funktioner som jeg havde brug for, det er ikke alle childs der skal ruge "SaveAs()" funktionen så den lader jeg bare være, og de funktioner mit child så skal bruge overrider jeg på childed!
og lidt kode...
min custom form: public class myForm : Form{ public string name = null;
public virtual void SaveAs() { } }
min parent: public class myParent : Form{ myForm[] childs = new myForm[1];
public EtEllerAndet myBtn(sender s, EventArgs e){ childs[0] = new myChild(); /* en masse child/parent lirumlarum */ childs[0].Show(); } }
mit child: public class myChild : myForm{ /* en masse kode */; }
læg en kommentar vis der er noget jeg skal uddybe!
Synes godt om
Ny brugerNybegynder
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.