.NET 隐藏/自定义windows系统光标

简介: 【10月更文挑战第20天】在.NET中,可以使用`Cursor`类来控制光标。要隐藏光标,可将光标设置为`Cursors.None`。此外,还可以通过从文件或资源加载自定义光标来更改光标的样式。例如,在表单加载时设置`this.Cursor = Cursors.None`隐藏光标,或使用`Cursor.FromFile`方法加载自定义光标文件,也可以将光标文件添加到项目资源中并通过资源管理器加载。这些方法适用于整个表单或特定控件。
  1. 使用Cursor类隐藏光标
  • .NET中,可以使用Cursor类来控制光标。要隐藏光标,可以将光标设置为Cursors.None。以下是一个简单的Windows Forms应用程序示例,用于隐藏光标:
  • 首先,创建一个新的Windows Forms应用程序项目。在Form1.cs文件中(假设默认的表单名称为Form1),在Form1Load事件处理方法中添加以下代码:


using System;
   using System.Windows.Forms;
   namespace HideCursorApp
   {
       public partial class Form1 : Form
       {
           public Form1()
           {
               InitializeComponent();
           }
   
           private void Form1_Load(object sender, EventArgs e)
           {
               this.Cursor = Cursors.None;
           }
       }
   }


  • 当表单加载时,this.Cursor = Cursors.None语句会将光标隐藏。这种方法适用于整个表单区域。如果只想在表单的某个特定区域隐藏光标,可以在相应的控件的事件处理方法中设置光标。例如,对于一个Panel控件,在它的MouseEnter事件处理方法中设置光标为None,可以这样写:


private void panel1_MouseEnter(object sender, EventArgs e)
   {
       panel1.Cursor = Cursors.None;
   }


  1. 自定义光标(使用自定义光标文件)
  • 要自定义光标,首先需要有一个光标文件(.cur.ani格式)。假设已经有了一个自定义光标文件(例如customCursor.cur),可以使用Cursor类的FromFile方法来加载自定义光标。
  • 以下是一个示例,在Windows Forms应用程序中加载自定义光标并将其应用到表单:


using System;
   using System.Windows.Forms;
   namespace CustomCursorApp
   {
       public partial class Form1 : Form
       {
           public Form1()
           {
               InitializeComponent();
           }
   
           private void Form1_Load(object sender, EventArgs e)
           {
               try
               {
                   this.Cursor = new Cursor("customCursor.cur");
               }
               catch (Exception ex)
               {
                   MessageBox.Show("无法加载自定义光标: " + ex.Message);
               }
           }
       }
   }


  • 在上述代码中,this.Cursor = new Cursor("customCursor.cur")语句尝试从文件customCursor.cur加载光标。如果文件不存在或格式不正确,会抛出异常,这里通过try - catch块来捕获并显示错误消息。
  • 同样,可以将自定义光标应用到特定的控件上。例如,要将自定义光标应用到一个Button控件,可以在ButtonMouseEnter事件处理方法中设置光标:


private void button1_MouseEnter(object sender, EventArgs e)
   {
       try
       {
           button1.Cursor = new Cursor("customCursor.cur");
       }
       catch (Exception ex)
       {
           MessageBox.Show("无法加载自定义光标: " + ex.Message);
       }
   }


  1. 自定义光标(使用资源文件)
  • 除了从文件加载光标外,还可以将光标文件添加到项目的资源文件中,然后从资源中加载光标。这样做的好处是可以将光标文件与应用程序一起打包,方便分发。
  • 首先,将光标文件(例如customCursor.cur)添加到项目的资源文件中。在Visual Studio中,可以通过以下步骤添加:
  • 在解决方案资源管理器中,右键单击项目,选择 “属性”。
  • 在属性窗口中,选择 “资源” 选项卡。
  • 点击 “添加资源” 按钮,选择 “添加现有文件”,然后选择光标文件。
  • 之后,在代码中可以通过资源管理器来访问和使用光标。以下是一个示例,在Windows Forms应用程序的表单加载事件中从资源中加载自定义光标并应用到表单:


using System;
   using System.Windows.Forms;
   namespace CustomCursorFromResourceApp
   {
       public partial class Form1 : Form
       {
           public Form1()
           {
               InitializeComponent();
           }
   
           private void Form1_Load(object sender, EventArgs e)
           {
               try
               {
                   System.Resources.ResourceManager rm = new System.Resources.ResourceManager(typeof(Form1));
                   this.Cursor = new Cursor((System.IO.Stream)rm.GetObject("customCursor.cur"));
               }
               catch (Exception ex)
               {
                   MessageBox.Show("无法加载自定义光标: " + ex.Message);
               }
           }
       }
   }


  • 在上述代码中,System.Resources.ResourceManager rm = new System.Resources.ResourceManager(typeof(Form1))创建了一个资源管理器对象,this.Cursor = new Cursor((System.IO.Stream)rm.GetObject("customCursor.cur"))从资源中获取光标流并创建光标对象,然后将其应用到表单。同样,如果有错误会通过try - catch块捕获并显示消息。
相关文章
|
2月前
|
安全 Windows
永久关闭 Windows 11 系统更新
永久关闭 Windows 11 系统更新
152 0
|
28天前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
67 32
|
9天前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
1月前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
92 13
如何配置Windows主机MPIO多路径访问存储系统
|
1月前
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
30 3
|
2月前
|
关系型数据库 C# 数据库
.NET 8.0 开源在线考试系统(支持移动端)
【10月更文挑战第27天】以下是适用于 .NET 8.0 的开源在线考试系统(支持移动端)的简介: 1. **基于 .NET Core**:跨平台,支持多种数据库,前后端分离,适用于多操作系统。 2. **结合 Blazor**:使用 C# 开发 Web 应用,支持响应式设计,优化移动端体验。 3. **基于 .NET MAUI**:跨平台移动应用开发,一套代码多平台运行,提高开发效率。 开发时需关注界面设计、安全性与稳定性。
|
2月前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
2月前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
2月前
|
运维 网络安全 虚拟化
Windows系统镜像检测修复建议
Windows系统镜像检测修复建议
|
2月前
|
Windows
安装Windows XP系统
安装Windows XP系统