Hilfe! Problem mit GDI und Form.Visible ?

voltaire

Grünschnabel
Hallo

Ich habe eine MDI-Anwendung mit einigen Child-Fenster. Eines der Child-Fenster sollte unsichtbar sein (bleiben). Beim Aufruf einer Methode mit folgendem Code wird das Fenster jedoch sichtbar:

Graphics e = this.CreateGraphics();
tmp = e.MeasureString(...);
e.Dispose();

Die Benutzung von CreateGraphics() resp. MeasureString() führt offensichtlich dazu, dass das Child-Fenster automatisch sichtbar wird, obwohl die Eigenschaft Visible auf FALSE
gesetzt war.
Wieso ist das so ?
Was kann man tun um dies zu verhindern ?
 
Hallo voltaire!

Willkommen im Forum!

Kann mir schwer vorstellen, wie durch die Aufrufe, dein Form auf einmal sichtbar werden soll. :confused: Du bist Dir sicher, dass Du keinen anderen Dinge ausführst? Alternativ kannst ja das Form.Hide() nochmal ausführen...

Btw. Zu Graphics.MesureString gib es ab .NET 2.0 eine bessere Alternative: Text Rendering in .NET 2.0 - Cosmo's Blog
 
Hallo Christian

Wieso das Fenster sichtbar wird wenn die drei Code-Zeilen ausgeführt werden weiss ich auch nicht. Jedenfalls bleibt das Fenster unsichtbar wenn ich diese drei Zeilen auskommentiere.
Ich habe den Artikel zum Text Rendering gelesen und die GDI-MeasureString() Methode ersetzt. Und siehe da ! ... nun läuft alles perfekt !
Das war der 'goldene' Tipp !

Vielen Dank für deine Hilfe !
Gruss
Renato
 
Zurück