如何在C#中设置自定义光标

     Visual Studio平台中只给出了一些常见的光标,如何在应用程序中使用自己定义的更加专业美观的光标呢?这里Visual Studio并没有给出现成的支持,不过可以通过调用API函数来实现目标,ok,下面看看该怎么做吧! 

一、加载标准光标资源文件(*.cur)

   双击Resource.resx(如果资源管理器中没有这一项只需右击项目选择添加——>新建项——>资源文件即可)添加要显示的光标文件。

添加完成后,资源管理器中会出现Resources文件夹,我们添加的项目就会出现在这里,如user.cur。

二、更改光标

   2.1 添加引用  using System.Runtime.InteropServices;

   2.2 在程序中声明光标资源加载函数LoadCursorFromFile;

         [DllImport("user32")]

          private static extern IntPtr LoadCursorFromFile(string fileName);

   2.3 声明数组 byte[] cursorbuffer=namespace.Resource .CursorName;

         Namespace为资源文件所在项目的命名空间名称,CursorName对应光标资源文件名。

   2.4 创建一个临时光标文件tempTest.dat;将cursorbuffer中的数据写入数据文件中;

         FileStream fileStream = new FileStream("tempTest.dat", FileMode. Create);

         fileStream.Write(cursorbuffer, 0, cursorbuffer.Length);

   2.5  关闭文件,利用API 函数LoadCursorFromFile从光标临时文件中创建光标。

          fileStream.Close();

          Cursor .Current =new Cursor(LoadCursorFromFile("temp001.dat"));

      至此,整个流程完成,只要将2.3-2.5中的代码放置到相应的事件中(如窗体的MouseDown事件),即可实现自定义光标了。

原文地址:https://www.cnblogs.com/RoyYu/p/2133279.html