Autor |
Beitrag |
DummyScript
Beiträge: 24
|
Verfasst: Di 27.07.10 17: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: 4764
Erhaltene Danke: 1052
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Di 27.07.10 17: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 18: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 18:27
Ok ich glaube ich habs gefunden. Das Event heißt Paint.
|
|
Äfan
Beiträge: 63
Win XP
MySQL, PHP, Visual C# 2005
|
Verfasst: Di 27.07.10 18: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.
_________________ bool AhnungHaben = false;
string SoTunAlsOb = "unbezahlbar";
|
|
DummyScript
Beiträge: 24
|
Verfasst: Mi 28.07.10 13:29
Wird das Fenster nicht jeden Frame/Zyklus neu gezeichnet?
Die Zahl sollte immer aktuell dargestellt werden.
|
|
Ralf Jansen
Beiträge: 4701
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Mi 28.07.10 13: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 22: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 22: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: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.07.10 02:00
|
|
Äfan
Beiträge: 63
Win XP
MySQL, PHP, Visual C# 2005
|
Verfasst: Do 29.07.10 11: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.
_________________ bool AhnungHaben = false;
string SoTunAlsOb = "unbezahlbar";
|
|
12profi
Beiträge: 170
Win 7
C# (VS 2010, #Develop)
|
Verfasst: Do 29.07.10 12: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 13: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 22:52
jo wie man jetzt auf Englisch sagen würde :You are welcome
|
|