| Autor |
Beitrag |
DummyScript
      
Beiträge: 24
|
Verfasst: Di 27.07.10 16:44
Hi!
Ich möchte mit einem Label eine Zahl ausgeben indem ich die Text Eigenschaft verändere. Dies muss dann natürlich permanent geschehen. Mein Fenster wurde mit dem Windows Form-Designer von Visual Studio erstellt. Meine Frage ist nun, ob es ein Event gibt, das permanent aufgerufen wird (das ich zum aktualisieren des Labels verwenden kann)? Oder bekomme ich irgendwie Zugriff auf die Hauptroutine des Fensters?
Danke für eure Hilfe!
|
|
Th69
      

Beiträge: 4805
Erhaltene Danke: 1061
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Di 27.07.10 16:55
Deine Frage ist ein bißchen komisch gestellt, aber ich glaube, du meinst einen "Timer". Dort kannst du dann im Tick-Ereignis den Text des Labels aktualisieren, s. z.B. openbook.galileocomp...70da0568dc2968abd117
|
|
DummyScript 
      
Beiträge: 24
|
Verfasst: Di 27.07.10 17:03
Ja oder ich mache einen eigenen Thread. Aber auch der Event-Handler des Fensters muss periodisch aufgerufen werden und wenn ich gleich dort die Aktualisierung vornehme spare ich mir das alles. Nur irgendwie finde ich den Teil in dem vom Windows Forms-Designer generierten Code nicht...
Vl. hat damit ja jemand Erfahrung.
|
|
DummyScript 
      
Beiträge: 24
|
Verfasst: Di 27.07.10 17:27
Ok ich glaube ich habs gefunden. Das Event heißt Paint.
|
|
Äfan
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 27.07.10 17:44
wann genau soll denn diese zahl im label verändert werden?
das paint-event halte ich für unsicher, da das event nur gerufen wird, wenn sich das fenster tatsächhlich neu zeichnen muss, was ja nicht immer der fall sein muss.
würde mich hier nicht auf paint verlassen.
|
|
DummyScript 
      
Beiträge: 24
|
Verfasst: Mi 28.07.10 12:29
Wird das Fenster nicht jeden Frame/Zyklus neu gezeichnet?
Die Zahl sollte immer aktuell dargestellt werden.
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Mi 28.07.10 12:36
C#-Quelltext 1:
| Wird das Fenster nicht jeden Frame/Zyklus neu gezeichnet? |
Nein nur wenn das Fenster mitbekommt(oder man es im sagt) das sich was geändert hat. Wenn sich nichts ändert wird also auch nicht neu gezeichnet. Warum auch.
|
|
DummyScript 
      
Beiträge: 24
|
Verfasst: Mi 28.07.10 21:05
Ok. Gibt es ein Event das jeden Frame aufgerufen wird? Wie wird so etwas normal realisiert?
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mi 28.07.10 21:51
Du hast immer noch nicht erzählt, wie oft die Quelle dieses Labels überhaupt aktualisiert wird. Aber jede sinnvolle Anzeigefrequenz eines Labels (also sicherlich nicht 60Hz) kannst du ohne große Auslastung mit einem Timer erreichen.
_________________ >λ=
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.07.10 01:00
|
|
Äfan
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 29.07.10 10:36
da wir hier alle immernoch keine ahnung haben, wann und wieso du die zahl neu zeichnen willst, muss ich spekulieren:
wenn du eine funktion hast, die z.b. etwas größeres und aufwendigeres macht, dann rufe die in einem eigenen thread auf und lass diese ein event schmeißen. dieses kannst du ja abonieren und demensprechend deine zahl aktualisieren.
oder bei einem festen zyklus und kleinen funktionen einfach einen timer nehmen.
ohne mehr infos kann man eben nur ungefähr erraten, was du machen willst.
|
|
12profi
      
Beiträge: 170
Win 7
C# (VS 2010, #Develop)
|
Verfasst: Do 29.07.10 11:51
wie wäre es mit Label1.Text="1"; oder wenn du einen int hast:
int a=1
Label1.Text=a.ToString();
oder du machst einen Timer der z.b. das kannst du einstellen jede Sekunde eine andere Zahl ausgibt
ich hoffe es hat dir geholfen
mfg 12profi
|
|
DummyScript 
      
Beiträge: 24
|
Verfasst: Fr 30.07.10 12:54
Jap werde es wohl mit nem Timer realisieren.
Danke für eure Hilfe!
|
|
12profi
      
Beiträge: 170
Win 7
C# (VS 2010, #Develop)
|
Verfasst: Mo 02.08.10 21:52
jo wie man jetzt auf Englisch sagen würde :You are welcome
|
|