Winform 使用透明的Panel

  • 1424
  • 0
  • C#
  • 2018-11-29

VS內建的Panel元件無法設定成透明的,如果需要透明的Panel需要做一些手腳。

 建立一個新的Class並繼承原本的Panel,覆寫以下的方法。

using System.Windows.Forms;

public class TransparentPanel : Panel
{
    protected override CreateParams CreateParams 
    {            
        get {
            CreateParams cp =  base.CreateParams;
            cp.ExStyle |= 0x00000020; // WS_EX_TRANSPARENT
            return cp;
            }
    }
    protected override void OnPaintBackground(PaintEventArgs e) 
    {
        //base.OnPaintBackground(e);
    }
}

先編譯一次專案後就可以直接在工具箱看到元件,使用方法跟原本的一樣拉到畫面上即可。