Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- From: "Volker Friedrich" <V.Friedrich@xxxxxx>
- Date: Thu, 7 Feb 2008 11:27:57 +0100
Hallo Karsten,
bestens erklärt und verstanden.
Das ganze muss aber irgendwie doch gehen. Denn es gibt Programme, die es
können.
Was Dritte können, werde ich auch irgendwann können.
Möglicherweise durch andere Programmmierkünste.
Kurz zu meinem Projekt:
Ich plane ein Chartprogramm, mit dem Trendlinien entlang der Kurslinie
gezogen werden können. Diese Trendlinien sollten sich
überschneiden können. Als Trendlinie verwende ich ein transparentes Label
mit einer diagonalen gezeichneten Linie (DrawLine).
Alles funktionier bestens, solange die Trendlinien (Labels) sich nicht
überscheiden.
Naja, vielleicht muss ich die Trendline anders entwerfen.
Vielen Dank für Deine Bemühungen
Volker
"Karsten Sosna" <k.sosna-NO-SPAM-@xxxxxxxxxxx> schrieb im Newsbeitrag
news:O0KRmoVaIHA.5980@xxxxxxxxxxxxxxxxxxxxxxx
sicherlichdanke für die klare Beschreibung.Hallo Volker,
Dies entspricht meinen bisherigen vergeblichen Versuchen z.B. Überlagern
von
PictureBox, Textbox, Label.
Wie erreiche ich aber trotzdem mein Ziel (z.B. Einsatz von Label als
Klarsichtfolie mit Inhalt)?
mit Steuerelementen in der Form gar nicht. Steuerelmente können gegenüber
anderen Steuerelement nur tranzparent wirken, wenn sie sich in diesem
befinden. Selbst ein "Übermalen" ist nicht möglich, dar jedes Steuerelment
seine eigene Routine zum Zeichnen besitzt.
Deine Beschreibung bezieht sich sicherlich nur auf dieWas verstehst Du unter "Standard-Eigenschaftseinstellung". Es gibt keine
Standard-Eigenschaftseinstellung:
Steuerelement.Backcolor=transparent.
weiteren Einstellungen die dieses Verhalten beeinflussen, abgesehen von
ControlStyles.SupportsTransparntBackColor. Letzters steuert aber nur, ob
überhaupt transparente Farben unterstützt werden.
Vielleicht erläuterst Du mal etwas genauer was Du machen willst,
gibt es eine Lösung. Die besteht dann aber darin, dass man ein Controlauf
entwickelt, welches die gesamte Anzeige erstellt. Aber nochmals, man bspw.
nicht über einen Button zeichnen, da dieser einen eigenen Grafik-Context
besitzt. Angenommen Du hast ein Formular mit einigen Steuerelementen. Nun
zeichnest Du auf dem Formular(auch an den Stellen wo sich Controls
befinden). Nachdem das Formular gezeichnet wurde fordert das Formular
wiederrum alle in der Controlsauflistung befindlichen Steuerelemente auf
sich selber zu zeichnen. Also überzeichnen die Controls den Bereich, wo
dem Formular schon gezeichnet wurde. Diesen Ablauf wiederholt jedesControl,
d.h. es zeichnet sich selber und fordert dann wiederum alle Controls inder
seiner Controls-Auflistung auf sich zu zeichnen.ein
Ablauf: Ein Panel auf dem Formular. Im Panel eine BictureBox, in dieser
Labelauf,
Formular wird gezeichnet.
Formular fordert das Panel auf sich zu zeichnen.
Panel wird gezeichnet.
Panel fordert die PictureBox auf sich zu zeichnen.
PictureBox wird gezeichnet.
PictureBox fordert das Label auf sich zu zeichnen.
Label wird gezeichnet.
Soweit würde Das Label tatsächlich die Zeichnung auf dem Formular
übernehmen, wenn das Panel, die PictureBox und das Label
BackColor=Transparent hätten. Es passiert nämlich folgendes.
Das Panel kopiert den Bereich auf dem es positioniert ist vom Parent und
verwendet Ihn als Hintergrund. Die PictureBox macht das mit dem Panel und
das Label mit der PictureBox. Alles in Butter.
Würdest Du nun transparentes Panel über ein transparentes Label legen,
passiert genau das Gleiche:
Das Formular fordert immer das unterste Control als erstes zum Zeichnen
also erst das Label. Das Label kopiert nun den Bereich des Formulars undnur
verwendet ihn als Hintergrund. Danach wird das Panel aufgefordert sich zu
Zeichnen, dieses macht genau das Gleiche, es kopiert den Bereich des
Formulars!!! Das ist genau der Punkt. Das was das Label gezeichnet hat
befindet sich nicht!!! auf dem Formular sondern wurde vom Label lediglich
"übermalt". Nun zeichnet sich das Panel und "übermalt" somit das was das
Formular und das Label gezeichnet haben. Sprich die Ausgabe des Labels ist
nicht mehr sichtbar. Auch die des Formulars nicht, hier das das Panel es
lediglich neu gezeichnet und somit erscheint es als wäre das Panel
"durchsichtig". Also erscheinen Controls nur gegenüber Ihrem Parent als
"durchsichtig", sind sie in Wirklichkeit gar nicht, sie zeichnen einfach
das was der Parent gezeichnet hat neu.
Hoffe das war jetzt verständlich.
--
Gruß Scotty
.
- Follow-Ups:
- Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- From: Karsten Sosna
- Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- From: Jürgen Müller
- Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- References:
- Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- From: Volker Friedrich
- Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- From: Karsten Sosna
- Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- From: Volker Friedrich
- Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- From: Karsten Sosna
- Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- Prev by Date: Re: Mail senden über Outlook
- Next by Date: Codegruppen und Starke Namen
- Previous by thread: Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- Next by thread: Re: Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken
- Index(es):
Relevant Pages
|