| |

VB.NET - FortgeschritteneRe: Grafikfehler während Scroll | |  | Autor: IIIIIChrisIIIII | Datum: 10.05.12 10:55 |
| Wenn Du ein Usercontrol erstellst, das ein FLPanel enthält,
kannst Du im UC eine Eigenschaft erstellen, die eine Referenz
auf das FLPanel zurückgibt.
Selbst wenn es sonst keine anderen Probleme bei dieser Lösung gäbe (die es aber gibt - siehe weiter unten), wäre es (aus meiner Sicht) unschön weil:
Wenn ich mir schon die Mühe mache, ein eigenes Control zu schreiben, möchte ich es später vielleicht wiederverwenden. D.h. es sollte von der usability genau so, wie alle anderen Controls sein. Bei den .NET ContainerControls kann ich auf die im ContainerControl abgelegten Controls per Code über die Eigenschaft "Controls" zugreifen. In deinem Fall hätte ich für mein selbst geschriebenes ContainerControl eine Eigenschaft "Controls" (die Standardeigenschaft, die jedes Control hat) und eine Eigenschaft, die auf die Controls des FLPaneles verweist (sagen wir einfach "Controls2").
D.h. über die intuitive Eigenschaft "Controls" würde ich erstmal nur auf das FLPanel kommen. Deswegen müsste ich, um auf den tatsächlichen Container zu kommen, auf dem ich meine Controls abgelegt habe, den Umweg über die Eigenschaft "Controls2" gehen. Dies ist aus meiner Sicht unintuitiv. Natürlich könnte man per Shadowing die Controls-Eigenschaft überlagern. Aber ich habe mir angewöhnt Shadowing nach Möglichkeit nicht zu nutzen, da es unschöne Nebeneffekte hervorrufen kann.
Hier aber der Hauptgrund, warum es NICHT funktioniert:
Erstelle mal eben ein kleines Beispielprojekt (musst nicht mal speichern) als Windows Form. Füge diesem dann ein neues UserControl hinzu. Ziehe darauf dann das FLPanel. Klicke auf Play und schließe das Programm wieder (nur damit das Control erstellt wird und anschließend das UC in der Toolbox auftaucht). Gehe nun auf die Form des Projekts und ziehe das UC darauf. Nimm dann irgend ein Control und ziehe es darauf. Du wirst feststellen, dass das UC nicht als ContainerControl fungiert. Um dies zu ändern, musst du im DesignerCode des UCs einstellen, dass es nicht von UserControl sondern von ContainerControl erbt. (Noch mal Play drücken und das Programm schließen) Nun kannst du Controls auf dein UC ziehen, diese werden aber nicht auf dem FLPanel innerhalb deines UCs abgelegt, sondern direkt innerhalb des UCs.
Man kann jetzt natürlich innerhalb des UCs per Code mittels des ControlAdd-Events das gerade hinzugefügte Control in das FLPanel verschieben, aber das ist alles unschön und führt immer wieder zu Problemen. Ich weiß es, weil ich es früher genau so gemacht habe und es später bereute.
Beitrag wurde zuletzt am 10.05.12 um 11:02:12 editiert. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|