Oberes Label2 soll Inhalt von unterem Label1 nicht verdecken

06/02/2008 - 15:50 von Volker Friedrich | Report spam
Hallo,

möchte ein Label über ein anderes Label legen.
Dabei soll der Inhalt beider Label-Steuerelemente voll sichtbar sein (wie 2
Klarsichtfolien mit Inhalten übereinander).

Dies klappt aber nicht. Das obere Label (Label2) verdeckt den Inhalt des
unteren Label (Label2).

Habe es bereits mit Label.Backcolor=transparent versucht.

Diese Eigenschaftseinstellung funktioniert in Bezug auf andere
Steuerelement-Typen z.B. Picturebox.
Es funktioniert aber nicht zwischen den Labels, also untereinander.

Gleiches habe ich auch mit Picturebox1 und Picturebox2 versucht. Auch hier
funktioniert es zwischen den PictureBoxes nicht.

Bei Textbox wird Textbox.Backcolor=transparent als ungültiger Wert
zurückgegeben, also gar nicht möglich.

Die Kombination Picturebox1 (unten) und Label1 (oben) funktioniert, ist aber
für das anstehende Projekt völlig wertlos.

Komme nicht weiter.
Wie löse ich das Problem?

Danke im Voraus

Volker
 

Lesen sie die antworten

#1 Karsten Sosna
06/02/2008 - 17:13 | Warnen spam
möchte ein Label über ein anderes Label legen.
Dabei soll der Inhalt beider Label-Steuerelemente voll sichtbar sein (wie
2
Klarsichtfolien mit Inhalten übereinander).

Dies klappt aber nicht. Das obere Label (Label2) verdeckt den Inhalt des
unteren Label (Label2).

Habe es bereits mit Label.Backcolor=transparent versucht.

Diese Eigenschaftseinstellung funktioniert in Bezug auf andere
Steuerelement-Typen z.B. Picturebox.
Es funktioniert aber nicht zwischen den Labels, also untereinander.

Gleiches habe ich auch mit Picturebox1 und Picturebox2 versucht. Auch hier
funktioniert es zwischen den PictureBoxes nicht.

Bei Textbox wird Textbox.Backcolor=transparent als ungültiger Wert
zurückgegeben, also gar nicht möglich.

Die Kombination Picturebox1 (unten) und Label1 (oben) funktioniert, ist
aber
für das anstehende Projekt völlig wertlos.

Komme nicht weiter.
Wie löse ich das Problem?



Hallo Volker,
Controls werden nur gegenüber ihrem Container transparent. Liegt ein Label
auf einem Formular ist es gegenüber dem Formular transparent. Liegt es in
einer PictureBox ist gegenüber Dieser transparent.
Vorsicht. Der Designer legt die Controls "über" eine PictureBox.
Beispiel zum Nachvollziehen:
Formular Hintergrundfarbe eines Formulars auf "Lime"(Helles grün) setzen
Eine PictureBox auf ein Formular ziehen, Hintergrundfarge auf bspw. Gelb
Ein Label auf die PictureBox ziehen, Hintergrundfarbe Transparent
* Das Label erscheint nun mit Hintergundfarbe des Formulars("Lime"). Das
bedeutet, dass das Label nicht in der PictureBox ist, sondern im Formular!
Folgender Code beweist das:
\\\
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Console.WriteLine(Label1.Parent.Name)
End Sub
///
Die Position des Controls bezieht sich immer auf den Container, deswegen
muss diese ggf. geàndert werden.
\\\
Private Sub Form1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Me.Click
Label1.Parent = PictureBox1
Label1.Location = New Point(Label1.Left - PictureBox1.Left, Label1.Top -
PictureBox1.Top)
Console.WriteLine(Label1.Parent.Name)
End Sub
///
Nach dem Click auf das Formular befindet sich das Label in der PictureBox
und der Hintergrund ist Gelb.

Controls über Controls können nicht transparent erscheinen. Einige
Steuerelemente unterstützen auch gar keine Tranzparenz, das sind dann meist
reine Windows-Steuerelemente(z.B. die TextBox) oder Controls die diese
benutzen.
Gruß Scotty

Ähnliche fragen