程晓晖

博客园 首页 新随笔 联系 订阅 管理

要实现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背景图片透明

posted on 2010-12-30 13:13  fumen  阅读(44134)  评论(6编辑  收藏  举报