C# Form实现自定义光标

时间:2023-03-08 20:53:10

WinForm代码如下:

 using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Forms; namespace KeleyiColorCursor
{
public partial class CursorForm : Form
{
[DllImport("user32.dll")]
public static extern IntPtr LoadCursorFromFile(string fileName); [DllImport("user32.dll")]
public static extern IntPtr SetCursor(IntPtr cursorHandle); [DllImport("user32.dll")]
public static extern uint DestroyCursor(IntPtr cursorHandle); public CursorForm()
{
InitializeComponent();
Cursor myCursor = new Cursor(Cursor.Current.Handle);
string m_cursorFile = @"D:\keleyi\pen_r.cur"; //pen_r.cur文件下载地址:
//http://down.keleyi.com/files/cursors/pen_r.cur //或者设为动态光标
// m_cursorFile = @"D:\keleyi\dinosau2.ani";
//下载地址: http://down.keleyi.com/files/cursors/dinosau2.ani IntPtr colorCursorHandle = LoadCursorFromFile(m_cursorFile); myCursor.GetType().InvokeMember("handle", BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Instance |
BindingFlags.SetField, null, myCursor,
new object[] { colorCursorHandle });
this.Cursor = myCursor;
}
}
}

运行后,如果把光标移入窗体,光标消失了,那是因为没有下载光标文件到特定文件夹。
光标文件下载:http://down.keleyi.com/files/cursors/dinosau2.ani
http://down.keleyi.com/files/cursors/pen_r.cur

转载自:http://keleyi.com/a/bjad/vvks7sw7.htm