Hallo zusammen,
bei der Erstellung eines UserControls das mehrere Panels beinhaltet bin ich auf folgendes Problem gestoßen: Liege z.B drei Panels im UserControl die höher sind als die sichtbare Größe des Controls muss ein Scroller her um den unteren Teil sichtbar machen zu können.
Der Inhalt der einzelnen Panels wird von denen selbst gezeichnet (beim Paint-Event). Leider sieht das Neuzeichnen unmöglich aus, da immer zuerst das 1. Panel gezeichnet wird, dann das zweite usw. Wird der Scrollbalken inzwischen weiterbewegt, fängt das 1. Panel wieder an sich zu zeichnen. Das führt dazu, dass bei kontinuierlicher Bewegung des Scrollers das 1. Panel halbwegs flüssig läuft, das 2. recht ruckelig und das 3. eigentlich stehen bleibt bis der Benutzer aufhört zu scrollen und genug zeit vorhanden ist alles Panels komplett zu zeichnen.
Hoffentlich kennt jemand eine Lösung zu diesem Problem. Das Zeichnen an sich sollte nicht sehr zeitaufwendig sein - es wird eine fertige Bitmap per DrawImageUnscaled() eingeblendet.
Vielen Dank für alle Antworten!
bei der Erstellung eines UserControls das mehrere Panels beinhaltet bin ich auf folgendes Problem gestoßen: Liege z.B drei Panels im UserControl die höher sind als die sichtbare Größe des Controls muss ein Scroller her um den unteren Teil sichtbar machen zu können.
Der Inhalt der einzelnen Panels wird von denen selbst gezeichnet (beim Paint-Event). Leider sieht das Neuzeichnen unmöglich aus, da immer zuerst das 1. Panel gezeichnet wird, dann das zweite usw. Wird der Scrollbalken inzwischen weiterbewegt, fängt das 1. Panel wieder an sich zu zeichnen. Das führt dazu, dass bei kontinuierlicher Bewegung des Scrollers das 1. Panel halbwegs flüssig läuft, das 2. recht ruckelig und das 3. eigentlich stehen bleibt bis der Benutzer aufhört zu scrollen und genug zeit vorhanden ist alles Panels komplett zu zeichnen.
Hoffentlich kennt jemand eine Lösung zu diesem Problem. Das Zeichnen an sich sollte nicht sehr zeitaufwendig sein - es wird eine fertige Bitmap per DrawImageUnscaled() eingeblendet.
Vielen Dank für alle Antworten!
Comment