Update Controls at runtime C#

Tags:    .net

Hej..

Jeg har et problem med at få nogle labels til at opdatere.

Fold kodeboks ind/udKode 

Det virker fint den først gang koden køres, men der efter kan jeg ikke få ny data vist, uden at lukke programmet og starte igen.




8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Hej Claus,

Det letteste er jo at slette dem og så oprette dem igen. Det kan du fx gøre ved at Clear'e Controls collectionen på din parent container, som i det her tilfælde ser ud til at være "panel2", altså noget i stil med:

panel2.Controls.Clear();

Det skal du så gøre hver gang du vil starte forfra. En pænere løsning ville som sagt være at holde styr på de enkelte labels og så opdatere dem i stedet, men til tider er det okay, og i hvert fald lettere, bare at re-create dem.

Men igen, jeg ved intet om formålet med din applikation og jeg kender ikke rigtigt noget til din data, så mit svar er stadig baseret på teori fremfor praksis :)

Mvh.

Kasper (TSW)



Hej Claus,

Jeg har lidt svært ved at gennemskue din problemstilling, men du opretter jo nogle labels i runtime hver gang det kode du har pastet bliver kørt. Hvis du efterfølgende vil opdatere i deres tekst må du enten oprette dem på ny (og dermed slette de gamle), eller sørge for at gemme en reference til dem, så du kan finde dem frem igen. Men jeg tror måske at det vil være betydeligt lettere at hjælpe dig hvis du lige skriver lidt mere om hvad det helt præcist er du gerne vil :)

Mvh.

Kasper (TSW)



Hej Kasper

Jeg vil køre denne kode flere gange, jeg har prøvet at slette dem, men da jeg ikke på forhånd ved hvor mange labels der er, har det ikke lykkes mig.
Programmet henter data hvergang man trykker på en knap "GetStatus" og opretter derefter et antal labels ud fra de data. Så vil jeg godt kunne hente data igen og opdater eller oprette labels igen.



Hej Kasper

Formålet med min app. er at hente status fra en "Home Automation Controler". Jeg medtager en xml string fra den og ud fra den kan jeg se status på forskellige moduler. "Lidt kort fortalt"
Det virker fint med panel2.Controls.Clear();
Tak for hjælpen.:D



Hej Kasper

Du kunne vel ikke lige fortælle mig hvordan jeg se om panel2 er tom eller om den indholder en "controls" f.eks. min labelMultilevel label?




Hej Claus,

Hvis ikke du fylder andre ting i den, og det lyder det ikke som om, så kan du jo tjekke Count propertien på Controls - den fortæller hvor mange child controls dit panel har :)

Mvh.

Kasper (TSW)



Hej Kasper

Den har jeg lige prøvet og nu virker det som det skal. :D



Det var godt :)

Mvh.

Kasper (TSW)



t