四联光电智能照明论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2051|回复: 0
打印 上一主题 下一主题

WinForm中控件与背景透明

[复制链接]
  • TA的每日心情
    开心
    2022-6-10 09:59
  • 366

    主题

    741

    帖子

    9649

    积分

    超级版主

    Rank: 8Rank: 8

    积分
    9649
    跳转到指定楼层
    楼主
    发表于 2016-10-28 12:46:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    要实现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背景图片透明
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Silian Lighting+ ( 蜀ICP备14004521号-1 )

    GMT+8, 2024-4-27 22:42 , Processed in 1.062500 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表