Text in Fensterleiste während Programmlauf ändern

123arne

Mitglied
Hallo,
Ich habe ein Programm in dem der Text in der oberen Fensterleiste sich während des Programmlauf ändern soll.
Beim Start wird Form1 mit
this.Text = "Auto - Current Speed: "+ Convert.ToString(this.auto.Geschwindigkeit);
erzeugt.
Wenn sich die Geschwindigkeit ändert soll die aktuelle Geschwindigkeit in der Fensterleiste oben neu angezeigt werden.
Wie schaffe ich es den Text der Fensterleiste neu zu schreiben?

Danke Arne
 
Hi Arne!

In der Art un weise wie Du es schon getan hast wenn sich die Geschwindigkeit ändert.
Code:
this.Text = "Auto - Current Speed: "+ Convert.ToString(this.auto.Geschwindigkeit);
Oder meinst jetzt was anderes?
 
Also beim Aufruf des Programm wird der FensterTitel schon so angezeigt wie ich will. Aber während das Programm läuft ändert sich die Geschwindigkeit und genau in dem Moment soll sich der Text in der Fensterleiste auch ändern.
Man kennt das z.B. von Brennprogrammen wo in der Fensterleiste immer steht bei wieviel % der CD das Programm gerade ist.
Ich muss das Programm dazu bringen nur den Text der Fensterleiste zu ändern, ohne das Fenster neu zu zeichnen.

Gruß Arne
 
Ich muss das Programm dazu bringen nur den Text der Fensterleiste zu ändern, ohne das Fenster neu zu zeichnen.
Musst Du doch nicht, wie kommst darauf?
Du kannst jederzeit den Titel des Fensters ändern. Einfach in das Property Form.Name hineinschreiben.

Du sagst Du möchtest das sich der Name des Fensters ändern soll, wenn sich die Geschwindigkeit ändert.
Dann mach das also wenn sich die Geschwindigkeit ändert.
Wann, wo und wie ändert sie sich denn? Kannst es da nicht einfach danach mit einbauen?
"Fährt das Auto in einem Thread?"
Dann nimm eine Event her und greif bitte nicht von Thread aus auf das Form zu.

Was genau ist dein Problem?
 
cosmo hat gesagt.:
Du kannst jederzeit den Titel des Fensters ändern. Einfach in das Property Form.Name hineinschreiben.
Nun ja, ich würde da doch lieber die Text-Eigenschaft her nehmen ;-)

Du kannst auch den Paint-Event abfangen bzw. die OnPaint-Methode überschreiben
Code:
this.Paint += new PaintEventHandler(Form_OnPaint);
....
private void Form_OnPaint(object sender, PaintEventArgs e)
{
    this.Text = "Auto - Current Speed: "+ Convert.ToString(this.auto.Geschwindigkeit);
}
Code:
protected override void OnPaint(PaintEventArgs e)
{
    this.Text = "Auto - Current Speed: "+ Convert.ToString(this.auto.Geschwindigkeit);
    base.OnPaint(e);
}

mfg broetchen

edit: hatte base.OnPaint vergessen
 
Zuletzt bearbeitet:
broetchen hat gesagt.:
Nun ja, ich würde da doch lieber die Text-Eigenschaft her nehmen
:eek: :-( Das war ein versprecher..... Sorry Arne.

Schwede, wieso machst jetzt den Vorschlag OnPaint her zu nehmen?
Ist jetzt das Form ein gezeichnetes Auto?
Das wissen wir doch gar nicht. ;)

Arne, es währe hilfreich wenn Du mal sagen würdest,
auf welche Art und Weise denn dein Auto "fährt".
Ich mein, in das Text(;)) Property des Forms rein zu schreiben,
sollte nun nicht das Problem sein.
Sag uns also mal was Dir jetzt genau Probleme bereitet.
Wenn Du's nicht so richtig beschreiben kannst,
dann poste doch einfach den Code Part mit ner kleinen Beschreibung dazu.

MfG, cosmo
 
Wenn man von Fensterleisten redet, liegt es nahe, dass es sich um eine Form handelt.
Und um ein Fenster auf dem neuesten Stand zu halten, bietet sich eben der Paint-Event an.

Der wird doch immer wieder abgefeuert, oder!?

mfg broetchen
 
Hmm, also ich würd sagen das doch logisch oder? Hatt er dch gut erklärt ;)

Er hat oben n Textfeld wo zB steht: 20km/h
Nun wenn sein "Auto" schneller wird in seinem Proggi soll der Text halt fliessend geändert werden zB auf 190km/h

Oder hab ich das flasch verstanden
mfg
ziop
 
cosmochaosmaker hat gesagt.:
Schwede, wir wissen doch immer noch nicht WAS WIE fährt.

Es is auch schnurz, was wie fährt. Das Fenster liest vom Auto die aktuelle Geschwindigkeit aus.
Code:
this.auto.Geschwindigkeit

Was das Auto jetzt ist und wie es fährt interessiert das Fenster nen Dreck ;-)

mfg broetchen
 
Zurück