.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块捕获并显示消息。
相关文章
|
1月前
|
安全 Windows
永久关闭 Windows 11 系统更新
永久关闭 Windows 11 系统更新
118 0
|
15天前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
57 13
如何配置Windows主机MPIO多路径访问存储系统
|
5天前
|
Windows Python
如何反向读取Windows系统日志EVTX文件?
以下是如何反向读取Windows系统日志EVTX文件
15 2
|
23天前
|
关系型数据库 C# 数据库
.NET 8.0 开源在线考试系统(支持移动端)
【10月更文挑战第27天】以下是适用于 .NET 8.0 的开源在线考试系统(支持移动端)的简介: 1. **基于 .NET Core**:跨平台,支持多种数据库,前后端分离,适用于多操作系统。 2. **结合 Blazor**:使用 C# 开发 Web 应用,支持响应式设计,优化移动端体验。 3. **基于 .NET MAUI**:跨平台移动应用开发,一套代码多平台运行,提高开发效率。 开发时需关注界面设计、安全性与稳定性。
|
30天前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
30天前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
1月前
|
Windows
安装Windows XP系统
安装Windows XP系统
|
1月前
|
安全 Windows
windows系统中,通过LOAD到入csv格式的文件到neo4j中,如何写文件路径
windows系统中,通过LOAD到入csv格式的文件到neo4j中,如何写文件路径
36 0
|
1月前
|
关系型数据库 MySQL Linux
Navicat 连接 Windows、Linux系统下的MySQL 各种错误,修改密码。
使用Navicat连接Windows和Linux系统下的MySQL时可能遇到的四种错误及其解决方法,包括错误代码2003、1045和2013,以及如何修改MySQL密码。
196 0
|
1月前
|
安全 Windows
Windows系统实现exe服务注册的方法都有哪些?
【10月更文挑战第5天】Windows系统实现exe服务注册的方法都有哪些?
270 0