下面是完整的例子,可以通过命令行编译即可看到效果。
using System; using System.Drawing; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Reflection; namespace ColorCursor{ /// <summary> /// 本例子的作用: 在.NET中实现自定义光标。 /// </summary> public class Form1 : System.Windows.Forms.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 ); [STAThread] static void Main() { Application.Run( new Form1()); } public Form1() { Cursor myCursor = new Cursor(Cursor.Current.Handle); IntPtr colorCursorHandle = LoadCursorFromFile( @" C:WINNTCursorsdinosau2.ani " ); // dinosau2.ani为windows自带的光标: myCursor.GetType().InvokeMember( " handle " ,BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetField, null ,myCursor, new object [] { colorCursorHandle } ); this .Cursor = myCursor; } }}
