Bekomme Label nicht Trabnsparent

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von laterne.

    Bekomme Label nicht Trabnsparent

    Hallo an Alle,

    wenn ich ein Animiertes GIF als Hintergund von der Form mache bleibt bild 1 stehen aber die Labels können mit Transparent durchsichtig gemacht werden,

    Ist im Hintergrund das Animierte Bild als Picturebox dan bewegt es sich das Bild aber Die Labels (Hintergrund vom Label) bleiben Grau obwohl Transparent eingestellt ist...

    (Dasselbe betrifft Groupboxen)

    Hoffe Ihr versteht was ich meine weiss nicht wie ichs besser beschreiben könnte :=)

    Gruß Pascal
    Das Problem hatte ich auch schon oft. Ich habe nur heraubekommen, dass sich das "Transparent" auf den Hintergrund der Form bezieht. Aber das, dass das Label auch auf der Pic transparent für die Picturebox ist würde mich auch interessieren.
    du kannst versuchen mit Eingenschaft "TransparencytKey" etc, oder mit WIN API:

    VB.NET-Quellcode

    1. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Integer, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
    2. Private Const GWL_EXSTYLE = (-20)
    3. Private Const WS_EX_TRANSPARENT = &H20&
    Eine Picturebox ist nunmal kein Containercontrol. Benutze ein Panel und stell das Label auf "Transparent". Dann beweg es ggf. nochmal einmal über das Panel hoch und wieder an die alte Stelle zurück damit es sich dem Panel und nicht der Form unterordnet.
    Hallo Kevin,

    hab ich versucht, hat leider auch nicht funktioniert. Bin am verzweifeln :(

    [[ Mit Transparentkey hat es funktioniert, nur dieser geht durch die komplette Anwendung durch ]]

    (Deine Homepage ist echt geil.)

    Gruß Pascal
    Also das ganze ist so:

    Wenn das Label auf dem Panel ist und der Background des Labels auf Transparent gestellt ist, nimmt das Label die Hintergrundfarbe des Panels an. Da du in einem Panel genausogut wie in einer Picturebox Bilder (oder Animationen) darstellen kannst, musst du eben deine Picturebox durch das Panel ersetzen. Versuch das und wenn du dann immer noch nicht weiterweißt, schick mir deine TV-Daten per PN.
    Was Google nicht alles ausspuckt ... ;)
    Ausgangssituation: Label auf Picturebox. Das Label soll transparent sein.

    Die Hintergrundfarbe muss zunächst auf "transparent" eingestellt werden:

    VB.NET-Quellcode

    1. Label1.BackColor = Color.Transparent

    Hilft nix. Oder doch? --> Dem Label muss mitgeteilt werden, zu welchem Element es denn transparent sein soll - im Moment ist das die Form. Deswegen scheint der Aufruf wirkungslos zu sein. Abhilfe schafft man, indem man die Parent-Eigenschaft neu festlegt. Doch jetzt verschiebt sich das Label in seiner Position - die Clientkoordinaten werden relativ berechnet und nicht absolut. Also ist gleichzeitig eine Anpassung notwendig.

    VB.NET-Quellcode

    1. Dim p As Point = Label1.PointToScreen(Label1.Location)
    2. Label1.Parent = PictureBox1
    3. Label1.Location = Label1.PointToClient(p)

    Um den Effekt anschaulich darzustellen, muss natürlich ein Bild in der PictureBox vorhanden sein.
    Gruß
    hal2000