C# winform 编程 控件背景透明问题

窗体的背景图片是用paint事件重绘的,然后我重写了一个ListView的控件,把控背景设为Transparent,运行的时候发现控件的背景是白色的(窗体背景是白色,如果设为透明的话,会是穿透效果。)

方法1、要实现C# WinForm中的控件与背景的透明,可以通过设置控件的BackColor属性为Transparent,同时设置其父控件。

方法2、 现有一PictureBox控件,十多个Label以及Button,那么只将这些Label和Button放入Panel中。同时在Form_Load事件中加入如下代码即可实现背景透明:
this.picturebox1.SendToBack();//将背景图片放到最下面
this.panel1.BackColor = Color.Transparent;//将Panel设为透明
this.panel1.Parent = this.picturebox1;//将panel父控件设为背景图片控件
this.panel1.BringToFront();//将panel放在前面
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-01
1、新建工程
2、设置窗体属性TransparentKey为窗体背景色
3、在窗体上添加ListView控件
4、为ListView手动添加少量 Column和Item
5、设置部分Items的背景色为白色以外的颜色
然后运行,查看效果
利用TransparentKey可以将多画面图片连续绘制到窗体上以形成动画本回答被提问者和网友采纳
第2个回答  2012-12-19
新控件得继承父类的属性,把父类的属性也设为Transparent
第3个回答  2012-12-19
隐约记得有个属性是Opacity在窗体的属性中.设置为0%就可以了吧?
第4个回答  2012-12-19
控件是相对窗体透明的,你把窗体的Transparent设为和背景相同颜色试试
相似回答