Adgang til Windows Form klassemedlem funktioner udefra

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en Windows Form C ++ applikation. I det har jeg et medlem, der skriver log ('WriteLog' poster til forskellige arrangementer.
(i offentlig ref klasse Form1 :)
    offentligt: ​​Void WriteLog (System :: Int32, System :: Int32, System :: String ^);


Nu har jeg oprettet en separat klasse, hvor jeg vil bruge WriteLog-funktionen (f.eks. Under konstruktionen, til at skrive i loggen, som objektet blev skabt). Men jeg kan ikke få adgang til funktionen. Jeg ved ikke hvordan man kommer til Form1 objektet, det synes ikke at have et objektnavn. Der er ingen
   formname=gcnew Form.
Det eneste jeg fandt var
   'Application :: Run (gcnew Form1 ());'


Jeg ville forvente at kunne kalde Writelog som
   formname-> WriteLog (1,1, 'test')


Jeg får fuldstændig konceptet om indkapsling, skitseret nedenfor. Men jeg ønsker at få adgang til medlemsfunktionen i Form-klassen
Henvisning til Windows Formelementer i andre klasser

Bedste reference


3 muligheder:
1) Lav WriteLog og alle involverede medlemmer en statisk medlemsfunktion af Form1. Ring derefter til Writelog uden et objekt.


2) Opret et separat Writelog-objekt uden for Form1 (renere)


3) brug indbygget skrive funktion Trace :: WriteLine


Jeg valgte den første, siden jeg allerede havde skrevet koden på den måde, og Writelog opdaterer også Form tekstbokse på samme tid. (Jeg ved, også ikke ren). Det ville være mere arbejde at omskrive.
Tak, Hans P, du sagde alt.