| |

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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevZIP40 Pro DLL 
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere 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
|
|