Adgang til form controller fra ekstern klasse

Tags:    c#

Baggrund:

En form med en textbox (navn: tbNavn)
I formens load event
instansieres en klasse

I klassen skal jeg ændre værdien af tekstboxen på formen, men hvordan gør jeg det ?

Er der en metode til at få adgang til klassens ejer ? (altså formen der instantierede klassen ) Uden at overføre en reference til formen i klassens constructor.

-------------------------
/Flemming Christensen



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
lad os sige at du har en klasse og din form. I klassen laver du så en din egen event og lader formen lytte på den.
Når du så sætter klassen til at ændre texten i din form. Du kan eventuelt læse mere her: http://www.ondotnet.com/pub/a/dotnet/2003/06/23/progCsharp3.html

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk / http://www.aktivudvikler.dk



Hvis det "bare" er noget ikke for kønt kode du skal have lavet, der bare skal virke kan du bare sende tekstboksen med i klassens constructor, og når der så er sat den nye værdi så skal du huske at lave henholdsvis en invalidate og en update. Den "Pæne" måde at gøre det på er at lave et interface der indeholder en metode til at ændre værdien, lade din form implementere dette interface og så sende din form med som reference. Alternativt kan du gøre det som Jimmi har foreslået, der undgår du helt at sende noget med som parameter...

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
\\"All your base are belong to us\\"




Et andet alternativ er at klassen kan returnere den tekst der skal sættes i tekstboksen. Så efter du har instantieret din klasse kan du gøre følgende: tbNavn = minKlasse.GetNavn(); eller du kan lave en metode på klassen der tager en tekstbox med som parameter (ikke så pænt), så kan du gøre dette: minKlasse.SetNavn(tbNavn);

Mulighederne er mange

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
\\"All your base are belong to us\\"



t