陈程的技术博客

  • 关于作者
全栈软件工程师
一个专注于技术研究创新的程序员
  1. 首页
  2. .NET
  3. 正文

WinForm使用简单的方法实现完美遮罩的效果

2016年3月18日 610点热度 0人点赞 0条评论

效果如图1。

在开发winform程序的时候,有些情况下,我们不希望用户随便点击,但是也想让用户可以看到具体的效果,这个时候我们想到了类似网页会有遮罩层这种功能,那么我们可以自己仿作一个。

博主本人看了网上有些方法,例如:博主june的采用自定义控件的方法,但是自定义控件没法设置透明的效果,必须做一些透明度的重制,而且在不少情况下难以使用,或者实现效果不好。

博主才用的方法比较原理很简单,设置Form的透明度和颜色,在把它指定显示在相关窗体上。

由于各种协调问题,博主还是研究了好几天,但总算不负众望。

实现过程:

1.设置Form的透明度和颜色等相关属性。

新建一个Form设置名称为ShadeLayer,其他属性如图2:

在初始化的时候,代码如下:

public ShadeLayer()
      {
          InitializeComponent();

          this.BackColor = Color.FromArgb(79, 79, 79);
          this.ShowInTaskbar = false;
      }

一个是设置背景色,一个是不现实在任务栏中。

好了设置完毕。

2.调用,代码如下:

if (Application.OpenForms[i].Visible)
           {
               shadeLayer = new ShadeLayer();
               shadeLayer.Tag = Application.OpenForms[i].Text;
               shadeLayer.Location = Application.OpenForms[i].Location;
               shadeLayer.Width = Application.OpenForms[i].Width;
               shadeLayer.Height = Application.OpenForms[i].Height;
               shadeLayer.Show(Application.OpenForms[i]);
           }

 

设置相关属性值,shadeLayer.Show的时候,设置它的主窗体,这样就会显示在窗体之上了。

3.关闭,这个不用多说了吧,一个Close()方法就能解决。 简单方便。

标签: C# winform
最后更新:2021年4月1日

博主

全栈工程师,侧重项目技术解决方案规划和开发

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

分类
  • .NET (65)
  • docker (3)
  • linux (12)
  • python (20)
  • web (14)
  • 小程序 (4)
  • 数据库 (2)
  • 未分类 (4)
  • 杂七杂八 (10)
标签聚合
python linux DevExpress js nginx C# centos winform
最新 热点 随机
最新 热点 随机
.NET开发手册标准参考 招募兼职前端开发 Centos安装dotnet6环境 VS上切换分支,vs编译运行出现bug,A fatal error was encountered彻底解决方案 用C#封装一个线程安全的缓存器,达到目标定时定量更新入库 C#通过特性的方式去校验指定数据是否为空
用C#封装一个线程安全的缓存器,达到目标定时定量更新入库 docker打包python镜像全教程 python 发送邮件 centos 运行php NAudio监听系统声音,屏蔽麦克风其他声音 一款采用MUI框架写的跨平台移动App应用

COPYRIGHT © 2021 陈程的技术博客. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS