Przeroczystey panel w C#

0

Mam dwa panele w c# WinForms:

panel2

panel3.BackColor = Color.FromArgb(0, 0, 0, 0);

panel3 leży na panelu2:

Problem polega na tym że gdy maluję coś na panelu 2 to nic nie widzę pomimo tego że panel3 jest przeźroczysty.

Proszę o pomoc ....

0

amespace WebBrowserAutomation

{

/// <summary>

/// A transparent control.

/// </summary>

public class TransparentPanel : Panel

{

    public TransparentPanel()

    {

    }

    protected override CreateParams CreateParams

    {

        get

        {

            CreateParams createParams = base.CreateParams;

            createParams.ExStyle |= 0x00000020; // WS_EX_TRANSPARENT

            return createParams;

        }

    }

    protected override void OnPaintBackground(PaintEventArgs e)

    {

        // Do not paint background.

    }

}

}

0

Mam taki problem. Mam dwa panele:
panel2, panel3( jest przezroczysty )
panel3 jest na panelu 2 . No i teraz jest taki problem bo na panelu nr 3 rysuję sobie siatkę i wszystko jest ok poza tym że ta siatka miga mi przez co animacja jest nie za bardzo ładna

Czy da się jakoś tak zrobić żeby panel3 nie odświeżał tak czesto. Zauważyłem że odświeżenie panelu2 powoduję automatyczne odświeżenie panelu3( szklany panel z siatką )

0

No bo ja sobie mysłem że jak nałoże glassPanel na ktorym będe malował siatkę to on nie będzie odświeżany. Jest jednak inaczej bo ta siatka(glassPanel) też mi się odświeża.

0

Albo zamiast panelu użyj Pictureboxa(rysuj na bitmapie i podmieniaj Image Pictureboxa), albo włącz podwójne buforowanie panelu(DoubleBuffered - było już na tym forum). I rysuj na jednym panelu, nie na dwóch jeden pod drugim

1 użytkowników online, w tym zalogowanych: 0, gości: 1