昨晚发了贴,可能描述得不好,只好重发了http://topic.csdn.net/u/20090508/02/98f618c0-c8d8-43e0-9943-c9ab63e0f99d.html如题,征求用C#代码实现改变鼠标光标的方法详细点说下:想在MouseMove事件下改变鼠标的光标。注明:不要this.Cursor = Cursors.Hand;和 自定义读取硬盘里或资源文件的光标
          

解决方案 »

  1.   

    那就写个javaScript样式,在mouseMove里调用
      

  2.   

    為什么不要this.Cursor = Cursors.Hand;?
      

  3.   


    如果this.Cursor = Cursors.Hand;那么在vasta下鼠标光标就不是vasta下的光标。
      

  4.   

    什么意思?  private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                 Cursor m_Currsor = new Cursor(Icon.Handle);
                Cursor = m_Currsor;
            }这样?
      

  5.   

    还有种..取系统光标..[DllImport("user32.dll", EntryPoint = "SetCursor")]
            public static extern IntPtr SetCursor(IntPtr hCursor);
            /// <summary>
            /// 获取鼠标句柄
            /// </summary>
            /// <param name="hInstance">IntPtr.Zero</param>
            /// <param name="cursor">样式</param>
            /// <returns></returns>
            [DllImport("User32.dll", CharSet = CharSet.Auto)]
            public static extern IntPtr LoadCursor(IntPtr hInstance, CursorType cursor);        public enum CursorType : uint
            {
                IDC_ARROW = 32512U,
                IDC_IBEAM = 32513U,
                IDC_WAIT = 32514U,
                IDC_CROSS = 32515U,
                IDC_UPARROW = 32516U,
                IDC_SIZE = 32640U,
                IDC_ICON = 32641U,
                IDC_SIZENWSE = 32642U,
                IDC_SIZENESW = 32643U,
                IDC_SIZEWE = 32644U,
                IDC_SIZENS = 32645U,
                IDC_SIZEALL = 32646U,
                IDC_NO = 32648U,
                IDC_HAND = 32649U,
                IDC_APPSTARTING = 32650U,
                IDC_HELP = 32651U
            }
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                IntPtr _HandCursor = LoadCursor(IntPtr.Zero, CursorType.IDC_HAND);
                SetCursor(_HandCursor);
            }这个和你系统设置有关系.... 我真不知道你要什么.
      

  6.   

    我要是你,不会去做舍近求远的事。要经过图片改变光标,设置pictureBox1.Cursor = ...;
    要在按钮上改变成另一个光标,设置button1.Cursor = ...;把需求描述清楚了,可以有更多朋友能帮忙。
      

  7.   

    贴代码吧,最直接
    vs2008 .net 2.0通过。
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using System.Reflection;namespace WindowsFormsApplication2
    {
        public partial class Form1 : 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 Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                Cursor myCursor = new Cursor(Cursor.Current.Handle);
                //busy_i.cur为windows自带的光标:
                IntPtr colorCursorHandle = LoadCursorFromFile(@"C:\Windows\Cursors\busy_i.cur");
                myCursor.GetType().InvokeMember("handle", BindingFlags.Public |
                BindingFlags.NonPublic | BindingFlags.Instance |
                BindingFlags.SetField, null, myCursor,
                new object[] { colorCursorHandle });
                this.Cursor = myCursor;
            }
        }
    }
      

  8.   

    我剛剛一直在試用系統API但一直都沒有效果。
      

  9.   


    应该是zgke兄台给的那个。试试下。
      

  10.   

    不明白LZ要干什么,自己写了篇文章,希望有用。
    C# 自定义光标 C# 彩色光标 光标嵌入资源文件