Avatar billede Sigma Pi Juniormester
03. november 2015 - 07:19 Der er 10 kommentarer

C# Løbende automatiks opdatering af tekstfelter

Hej Alle,

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.
Avatar billede Slettet bruger
03. november 2015 - 09:05 #1
Jeg skal lige forstå det korrekt, et det en textbox/label du skal opdatere med en ny værdi?
Avatar billede Sigma Pi Juniormester
03. november 2015 - 09:22 #2
Jeps, det er det.

Alle de bokse, som viser tallene er indsat som tekstbokse.
Avatar billede Slettet bruger
03. november 2015 - 09:55 #3
Hvis du vil opdatere dem med ny tekst, tilgår du dem bare via navnet og sætter Text igen..f.eks

textbox1.Text = "Ny værdi";
Avatar billede Sigma Pi Juniormester
03. november 2015 - 11:21 #4
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.
Avatar billede Sigma Pi Juniormester
03. november 2015 - 11:22 #5
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?
Avatar billede 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.

Giver det mening?
Avatar billede Sigma Pi Juniormester
03. november 2015 - 11:36 #7
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?
Avatar billede 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.

Helt ok.
Avatar billede Sigma Pi Juniormester
03. november 2015 - 11:52 #9
Super ... håbede godt på, at der var en dejlig smutvej ;)

Det næste er så at forstå det, der sker :D
Avatar billede Sigma Pi Juniormester
04. december 2015 - 13:21 #10
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!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester