C# 实现 WinForm 全屏置顶
【摘要】 我们在运行一些 Windows 应用程序的时候,需要将其运行在窗体置顶的模式(使其它应用窗体无法遮挡在置顶应用窗体之上),并且进入全屏状态。本文将介绍如何使用 C# 来实现 WinForm 的全屏置顶的基本功能。
应用需求
我们在运行一些 Windows 应用程序的时候,需要将其运行在窗体置顶的模式(使其它应用窗体无法遮挡在置顶应用窗体之上),并且进入全屏状态。本文将介绍如何使用 C# 来实现 WinForm 的全屏置顶的基本功能。
基本功能主要实现以下几点:
(1)改变WinForm的一些外观属性,包括无边框、最大化和置顶属性。
(2)屏蔽一些键盘操作,以阻止关闭应用程序或切换到其它的应用程序。基本可以屏蔽左右WIN菜单键、关闭窗口组合键(Alt+F4)、切换窗口组合键(Alt+Tab)、开始菜单键(Ctrl+Esc)。
设计
设计 CraneofficeWinLock 类,该类可以实现一些方法,自动设置 WinForm 的一些属性、屏蔽一些键盘操作,其主要设计如下表:
序号 | 名称 | 成员类型 | 类型 | 说明 |
---|---|---|---|---|
1 | form | 属性 | System.Windows.Forms | 指定要自动设置属性的窗体 |
2 | OnKeyPress | 方法 | void | 处理屏蔽键盘操作的方法 |
3 | Start | 方法 | void | 主入口方法,启动程序,需要传递OnKeyPress方法句柄 |
4 | Stop | 方法 | void | 停止所有屏蔽操作 |
范例运行环境
操作系统: Windows 11、Windows 10 、Windows 2019 Server
.net版本: .netFramework4.7.2 或以上
开发工具:VS2019 C#
运行设备:Microsoft Surface Pro
实现代码
核心代码
代码如下:
调用示例
示例代码如下:
小结
我们可以在退出代码中停止屏蔽的操作,如下代码:
另外,为防止一些其它未考虑的情况,比较懒,写了一个计时器(时长1000毫秒)代码,实时激活窗体的状态,以保持窗体永远在最上层,如下代码:
以上代码我们提供了一些基本操作相关的方法,这里仅作参考,欢迎大家评论指教!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)