C# Form实现自定义光标

    技术2022-05-11  86

    下面是完整的例子,可以通过命令行编译即可看到效果。

     

    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;        }    }}

    最新回复(0)