如何用C#写一个透明控件?(WinForm程序)

首先先从System.Windows.Forms.Panel 继承一个自定义控件,然后在控件的构造函数中添加下面的代码 :

SetStyle(ControlStyles.UserPaint, true);

SetStyle(ControlStyles.SupportsTransparentBackColor, true);

this.BackColor = Color.Transparent;

 

其中调用SetStyle函数进行设置ControlStyles.SupportsTransparentBackColortrue

 

然后设置控件的背景颜色为透明Color.Transparent.

 

把设计好的控件添加到WINFORM中来,发现自定义控件可以在其他控件上面时可以变成透明,但是如果放在图片控件上面却没有透明效果,为了这个问题,研究了半天,后来终于发现只需要简单的设置一下控件的parent属性为图片控件即可.代码如下 :

 

Panel21.Parent = pictureBox1;

 

 

原文地址:https://www.cnblogs.com/yja9010/p/3178809.html