C# Winform控件透明

一个button 一个pictruebox, 其中pictruebox里面的图片是gif彩色方边框,中间是透明的,我想要透过彩色方边框看到后面的button

要实现C# WinForm中的控件与背景的透明,可以通过设置控件的BackColor属性为Transparent,同时设置其父控件。因为在C#中,控件的透明指对父窗体透明。
如果不设置Parent属性,那么控件将只对Form透明,显示的时候都会把Form的背景色(默认为Control)重刷一遍作为自己的背景。
在控件比较多的情况下,可以使用Panel控件,将某一组的控件都放到Panel中,然后只对此panel设置背景透明即可,则其他控件都跟着实现了背景透明。
如,现有一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放在前面
以上代码即可实现所有的控件都对PictueBox背景图片透明追问

已完全按照您的方法做的.启动后Panel和里面的button1全部消失了.请问是哪里做的不对吗

追答

你等等 我有点忙 今天尽量给你解决 你最好是把代码贴出来

追问

恩好的,谢谢,这个就是一个窗体,里面任何代码都没有.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-21

是这个意思吗?下面的是GIF图。

追问

pictruebox必须在最上层, 你的两个控件已经一个完全盖住另一个了. 你像我的那样一部分盖住另一个再试试.

第2个回答  2014-09-03
pictruebox ——BackColor——Web——Transparent 编辑这个属性可以让pictruebox透明 如果还是看不到后边 你就先把pictruebox 删掉 再重新创建一个 ,如果还不透明就是你的动态图片不透明了 ,望采纳~追问

按照你的方法试了,还是不好使.gif图片绝对是透明,pictruebox也重新添加.并且看文本大纲中Control中排序也在button1的前面

请问还有没有别的方法

相似回答