Just nu i M3-nätverket
Jump to content

OOP problem


Ahlberg81

Recommended Posts

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

 

Link to comment
Share on other sites

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

 

 

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...