Just nu i M3-nätverket
Gå till innehåll

OOP problem


Ahlberg81

Rekommendera Poster

Hej, jag är helt färsk på C# och grafisk windowsprogrammering överhuvudtaget egentligen, så nu har jag en förmodligen väldigt grundläggande fråga.

 

När man skapar ett nytt grafiskt projekt i visual studio i C# så läggs formuläret och knapparna i en klass, typ Form1, när jag skapar en ny klass utanför Form1, hur gör jag då för att komma åt komponenterna i Form1 klassen från den nya klassen? Tex om den nya klassen skall ha data från komponenter i Form1 klassen, plocka värdet från en textruta etc?

 

 

//Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Hej

 

Om du skall använda objektorientering på ett snyggt sätt så skall du nog inte låta en annan klass läsa värden från Form1.

 

Låt Form1 implementera ett objekt av din klass och använd metoder/attribut i klassen för att sätta data i det skapade objektet...

 

Alla komponenter på Form1 är privata och kan inte (iaf inte "by default") accessas ifrån nån annan klass...

 

 

//Andreas

 

 

 

Länk till kommentar
Dela på andra webbplatser

Tackar för svaret, men om jag fattat det hela rätt då så får man ha en klass tex Form1 som "main" klass som i princip är en motsvarighet till en Main() funktion då eller?

 

 

//Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Hej

 

I C# finns ingen main loop i klassisk bemärkelse... Istället används windows event kö för att signalera det mesta... (Undantag finns om man kör multitrådade applikationer...)

 

När man klickar på en knapp skickas ett OnClickEvent till meddelande kön som man kan ta hand om och agera på... Detta görs genom att men kopplar en eventhanterare till Click eventet på knappen...

 

Vill man ha något som körs i en loop, tex uppdatering av en klocka eller dylikt så lägger man den koden i en timer som triggas med jämna mellanrum..

 

Filen Program.cs (vanligtvis heter filen det tror jag iaf) innehåller "Main" funktionen, om du kollar koden i main funktionen så ser du att det finns en rad typ:

 

Application.Run( Form1 );

 

Denna kodraden lämnar över exekveringen till windows så att säga... main funktionen stannar här och väntar på att Form1 skall stängas ner mha tex Form1.Close() funktionen... All interaktion med applikationen sker via events kopplade till kontrollerna på formet...

 

//Andreas

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...