Jeg er ret ny ud i universet med programmering, men har gennemgået en række online lektioner/tutorials, der ligesom har fået mig i gang. Men nu hvor jeg så sætter mig ned med mit første projekt, så ophober der sig jo et hav af spørgsmål.
Nuvel - spørgsmål 1 (i hvad jeg forudser bliver en meget lang række...)
Jeg har lavet en Winform, med Visual Studio Express 2010 der skal være et karakterark til et rollespil. Heri er blandt andet en sektion med karakteren primære egenskaber (styrke, udholdenhed, intelligens, etc.). Denne værdi repræsenteres ved den værdi spilleren skriver + eventuelle bonusser fra valget af race + øvrige bonusser. Detter fører til en total.
Planen er, at hver gang spilleren ændrer karakterens egenskab, så skal denne ændring slå igennem i total. Det vil sige, at den skal lægge tallene sammen. Jeg har helt styr på det med .Text, int.parse og alt det her, men jeg kan simpelthen ikke få den til automatisk at opdatere, som man er vant til at f.eks. Excel jo bare gør for én!
Jeg har prøvet en lille smule Unity 5, hvis nogen kender det. Det har en "Update"-metode, der hele tiden kører what-ever kode man smider deri, én gang pr. frame. Har Visual Studio/C# noget lignende?
Svaret er sikkert enkelt. Jeg har forsøgt at finde hjælp andre steder på nettet, men uden held.
Jeps, den er jeg med på. Men hvordan får jeg min applikation til automatisk, løbende (hele tiden), at kære en bestemt stump kode?
Jeg kan sagtens få det til at virke, når den initierer, samt hvis jeg f.eks. laver en knap, der får den til at "refreshe". Men jeg ville gerne uden om det.
Jeg ville gerne have, at i det øjeblik brugeren forlader tekstboksen, hvor han har indtastet en værdi, så opdaterer den, således total afspejler ændringerne.
Jeg ser to muligheder:
1) Enten skal jeg på én eller anden måde gøre det ved OnPropertyChange?
2)Der skal køre et script, der hele tiden opdaterer total tekstboksen (ligesom Unity 5 "Update"-metoden).
Jeg kan simpelthen bare ikke finde ud af, hvordan jeg gør det. Og det ganske givet mangel på erfaring.
Og jeg er også godt med på while-metoder for-metoder osv. Men det er ikke lige det, som jeg synes passer er?!
Jeg tænker der må være én eller anden mere overordnet metode, lidt ligesom vi har vores "on initialization"-metode?
Synes godt om
Slettet bruger
03. november 2015 - 11:24#6
Ah nu er jeg med..
På de textbokse som du taster værdier ind i, som skal ændre total, tilføj et TextChanged event på dem. Dette event affyres så¨snart værdien ændre sig.
Du laver så en fælles metode som f.eks hedder UpdateTotal() som alle dine TextChanged kald kalder. inde i UpdateTotal metoden sætter du så din total-textbox til den nye værdi.
Det tror jeg det gør. Jeg må afprøve det, når jeg lige kommer hjem på et tidspunkt. Jeg har ikke rigtig arbejdet med events endnu, så det skal jeg jo så lige have sat mig ind i.
Men det lyder som om, at det sagtens kunne være en løsning.
Jeg skal nok give points, når jeg lige har haft mulighed for at prøve det af ... ok?
Synes godt om
Slettet bruger
03. november 2015 - 11:41#8
I designeren i Visual Studio (Hvor du ser dine knapper i din applikation) kan du trykke på knapperne og i Properties vinduet til højre kan du skifte tab til Events, der kan du se alle de events den aktive kontrol har. Der finder du bare TextChanged og dobbeltklikker. Ellers kan det altid tilføjes manuelt i koden.
Undskyld, undskyld, at der er gået så længe med at få responderet. Mit liv har lige haft taget nogle uventede drejninger, der krævede alt min energi og tilstedee.
Jeg har heller ikke fået bikset mere med det C#, men opret endelig et svar, så giver jeg points for ventetiden!
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.