vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: 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.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Grafikfehler während Scroll2.067IIIIIChrisIIIII08.05.12 13:13
Re: Grafikfehler während Scroll1.539keco08.05.12 19:10
Re: Grafikfehler während Scroll1.555IIIIIChrisIIIII09.05.12 07:29
Re: Grafikfehler während Scroll1.559keco09.05.12 11:20
Re: Grafikfehler während Scroll1.519IIIIIChrisIIIII09.05.12 11:34
Re: Grafikfehler während Scroll1.573Manfred X09.05.12 19:47
Re: Grafikfehler während Scroll1.584IIIIIChrisIIIII10.05.12 09:45
Re: Grafikfehler während Scroll1.525Manfred X10.05.12 10:07
Re: Grafikfehler während Scroll1.571IIIIIChrisIIIII10.05.12 10:55

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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