HDSoftware Skrevet 4. mars 2009 Del Skrevet 4. mars 2009 Heisan folkens I Clarion så kan jeg i en tett loop gjøre slik: loop i = 1 to 100 ?VerdiString{PROP:Text} = i DISPLAY() End !Loop Dermed vil feltet på skjermen oppdatere seg i alle iterasjoner. Hvordan gjør man dette i C# tro? Lenke til kommentar
kaffenils Skrevet 4. mars 2009 Del Skrevet 4. mars 2009 (endret) Kall Refresh metoden. Denne kan kan kalles for hele formen eller for hver enkelt kontroll. Edit: Du "vant" wubbelibubbeli Endret 4. mars 2009 av kaffenils Lenke til kommentar
GeirGrusom Skrevet 4. mars 2009 Del Skrevet 4. mars 2009 Feltet vil vel oppdatere seg automatisk uansett så lenge Text blir endret? Lenke til kommentar
HDSoftware Skrevet 4. mars 2009 Forfatter Del Skrevet 4. mars 2009 Ser ikke sånn ut hos meg i allefall. Har en slik rutine: lblAction.text = "Gjør noe her"; foreach (var r in records) { ... masse kode ...} lblAction.Text = "Gjor noe annet"; foreach(........ o.s.v. gjennom 10 tabeller. Skjer ikke noe i vinduet før programmet er ferdig. Lenke til kommentar
GeirGrusom Skrevet 4. mars 2009 Del Skrevet 4. mars 2009 Ah skjønner. Grunnen er at windows forms kjører i en tråd, så endringer vil ikke skje før tråden får tid til å tegne opp på nytt. Du kan prøve med å legge en Application.DoEvents() inne i tråden etter at teksten er endret, tror det skal fikse biffen. Lenke til kommentar
Wubbable Skrevet 4. mars 2009 Del Skrevet 4. mars 2009 Du kan prøve med å legge en Application.DoEvents() inne i tråden etter at teksten er endret, tror det skal fikse biffen. Noe Refresh() også fikser helt perfekt Lenke til kommentar
GeirGrusom Skrevet 4. mars 2009 Del Skrevet 4. mars 2009 Jeg mener DoEvents er bedre fordi det fører til at arbeidskøen blir utført istedet for at hele formen blir tegnet på nytt. Lenke til kommentar
kaffenils Skrevet 5. mars 2009 Del Skrevet 5. mars 2009 Hvis HDSoftware bare ønsker at kontrollene skal tegnes på nytt så er Refresh den beste metoden. Hvis du bruker DoEvents så får en masse ekstraarbeid med f.eks. å disable kontroller som ikke skal kunne brukes mens koden kjører. DoEvents er en veldig kjekk ting å ha for å få et responsivt GUI, men det er bedre å bruke Refresh hvis det eneste en ønsker å oppnå er å tegne kontrollene på nytt. Lenke til kommentar
HDSoftware Skrevet 5. mars 2009 Forfatter Del Skrevet 5. mars 2009 Refresh blir nok valget. Tror den også går fortere Takker for alle svar... Lenke til kommentar
GeirGrusom Skrevet 5. mars 2009 Del Skrevet 5. mars 2009 Vil det ikke begynne å flimre da? hvis hele formen må repaintes mener jeg... med DoEvents så blir det i så fall bare tekstboksen som er blitt endret som blir tegnet på nytt istedet for hele formen og alle kontrollene dens. Vel vel, samme for meg. Lenke til kommentar
Wubbable Skrevet 5. mars 2009 Del Skrevet 5. mars 2009 Lurer på hva HDSoftware prøver på 1. Er den rask nok til å kjøre i hovedtråden, går det såpass raskt at brukerne ikke bryr seg om tekstboksen oppdateres eller ikke 2. Går det så treigt at du må oppdatere tekstboksen for å vise at programmet ikke har hengt seg, bør du kanskje vurdere multithreading? Lenke til kommentar
HDSoftware Skrevet 5. mars 2009 Forfatter Del Skrevet 5. mars 2009 Hehe - 2 er nærmest :-D Er et konverteringsprogram jeg lager for å konvertere gamle data inn i et nytt system. Er kunn til eget bruk og flimring etc er helt uinteressant i denen sammenhengen. Jeg skal bare sette teksten i en label som forteller meg hvilken tabell jeg oppdaterer, altså kunn for infoen skyld. Ingen grunn til å opprette noen tråd i denne sammenhengen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå