Gå til innhold

Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Skrevet (endret)

Kall Refresh metoden. Denne kan kan kalles for hele formen eller for hver enkelt kontroll.

 

Edit: Du "vant" wubbelibubbeli ;)

Endret av kaffenils
Skrevet

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.

Skrevet

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.

Skrevet
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 :p

Skrevet

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.

Skrevet

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.

Skrevet

Lurer på hva HDSoftware prøver på :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?

Skrevet

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...