Hallo,
ich entwickle gerade eine WindowsForms-Anwedung. Der Applikationsrahmen ist in einer typischen Dreiteilung aufgebaut. Linke Seite Listview + TabControl, Mitte = TabControl, rechte Seite = TabControl. Es gibt eine MenueBar und eine ToolBar. Für das Laden der Form und für das Laden der eizelnen Controls auf den TabControls benutze ich DoubleBuffering und habe mich bei der Implementierung an den Artikel "Practical Tips For Boosting The Performance Of Windows Forms Apps" aus dem MSDN Magazin gehalten. Diesen Artikel hat Milena Salman geschrieben und ich kann diesen Artikel nur jedem ans Herz legen.
Artikellink
Weiterhin ist implementiert meine WinFormsApp das MVC-Pattern. Somit sollte ich eigentlich Alles getan haben, eine saubere und performante WindowsForms-Anwendung abzuliefern.
Nun muss ich dazusagen das ich auf einem Windows VISTA System entwickle. Mein Laptop bekommt vom System selbst die Performance-Bewertung von 5,2 was nicht der schlechteste Wert sein sollte ;-)
Wenn ich nun meine WindowsForms-Anwendung starte, werden trotz aller Vorkehrungen die Controls in den TabPages sehr verzögert eingezeichnet. Und das bei jedem Tabwechsel. Nun habe ich mal aus lauter Verzweiflung in den Eigenschafter der Assembly (Die Eigenschaften die man über den WindowsExplorer erreicht (KontextMenü)) die Kompatibilität auf Windows XP SP2 umgestellt. Und siehe da...... Die Anwendung schnurrt wie eine schweizer Uhr.
Was ist hier bei meiner Implementierung falsch gelaufen. Ist das ein Normales Verhalten auf VISTA (kann ich mir nicht vorstellen)? Wie kann ich solche Kompatibilitätseinstellungen aus einem Setup oder aus der Anwendung heraus mit .NET einstellen? Gibt es bestimmte Verhaltensregeln oder neue Klassen die beim Zeichnen von Controls unter VISTA Beachtet werden müssen? Wenn ja, wo kann ich Sie nachlesen? Im Windows VISTA SDK habe ich NOCH! nichts gefunden :-(
Tausend Dank für jeden Hinweis oder Gedankenanstoß
TOM_MUE (Thomas Mueller)
ich entwickle gerade eine WindowsForms-Anwedung. Der Applikationsrahmen ist in einer typischen Dreiteilung aufgebaut. Linke Seite Listview + TabControl, Mitte = TabControl, rechte Seite = TabControl. Es gibt eine MenueBar und eine ToolBar. Für das Laden der Form und für das Laden der eizelnen Controls auf den TabControls benutze ich DoubleBuffering und habe mich bei der Implementierung an den Artikel "Practical Tips For Boosting The Performance Of Windows Forms Apps" aus dem MSDN Magazin gehalten. Diesen Artikel hat Milena Salman geschrieben und ich kann diesen Artikel nur jedem ans Herz legen.
Artikellink
Weiterhin ist implementiert meine WinFormsApp das MVC-Pattern. Somit sollte ich eigentlich Alles getan haben, eine saubere und performante WindowsForms-Anwendung abzuliefern.
Nun muss ich dazusagen das ich auf einem Windows VISTA System entwickle. Mein Laptop bekommt vom System selbst die Performance-Bewertung von 5,2 was nicht der schlechteste Wert sein sollte ;-)
Wenn ich nun meine WindowsForms-Anwendung starte, werden trotz aller Vorkehrungen die Controls in den TabPages sehr verzögert eingezeichnet. Und das bei jedem Tabwechsel. Nun habe ich mal aus lauter Verzweiflung in den Eigenschafter der Assembly (Die Eigenschaften die man über den WindowsExplorer erreicht (KontextMenü)) die Kompatibilität auf Windows XP SP2 umgestellt. Und siehe da...... Die Anwendung schnurrt wie eine schweizer Uhr.
Was ist hier bei meiner Implementierung falsch gelaufen. Ist das ein Normales Verhalten auf VISTA (kann ich mir nicht vorstellen)? Wie kann ich solche Kompatibilitätseinstellungen aus einem Setup oder aus der Anwendung heraus mit .NET einstellen? Gibt es bestimmte Verhaltensregeln oder neue Klassen die beim Zeichnen von Controls unter VISTA Beachtet werden müssen? Wenn ja, wo kann ich Sie nachlesen? Im Windows VISTA SDK habe ich NOCH! nichts gefunden :-(
Tausend Dank für jeden Hinweis oder Gedankenanstoß
TOM_MUE (Thomas Mueller)