C#实现透明WinForm控件

public partial class tspControl : UserControl

    {

        public tspControl()

        {

            InitializeComponent();

            SetStyle(ControlStyles.SupportsTransparentBackColor

              | ControlStyles.UserPaint

              | ControlStyles.AllPaintingInWmPaint

              | ControlStyles.Opaque, true);

            this.BackColor = Color.Transparent;

        }       



        private Image img;

        public Image Image

        {

            get

            {

                return img;

            }

            set

            {

                img = value;

            }

        }



        protected override void OnLocationChanged(EventArgs e)

        {

            //base.OnLocationChanged(e);

            Visible = false;

            Visible = true;

        }



        protected override CreateParams CreateParams

        {

            get

            {

                //return base.CreateParams;

                CreateParams cp = base.CreateParams;

                cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT 

                return cp;

            }

        }

        protected override void OnPaint(PaintEventArgs pe)

        {

            if (img != null)

            {

                base.OnPaint(pe);

                pe.Graphics.DrawImage(img, 0, 0);

            }

            else

            {



            }

        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值