查了网上的说法,貌似很多人说是用
       Cursor.Current = Cursors.WaitCursor,可以实现将鼠标指针替换为等待模式。
       但是我自己写了段代码:
        private void btnTest_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
        }
       执行后看不到效果,鼠标还是老样子。
       但是这样的代码则是有效的:
        private void btnTest_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
        }
        但是这个效果仅限鼠标在窗体内部,一旦鼠标移到到窗体外面,又变回了原来的样子。
        我需要将全局的鼠标都修改为我指定的图标,直到我另外一个按钮事件激发,再将鼠标图标改回来。
        类似于VC中以下代码的效果
    HICON hicon1 = LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE (IDI_ICON1)); 
    //IDI_ICON1是有靶图标资源号
    this->SetIcon(hicon1);
       请教如何实现?
        

解决方案 »

  1.   

    应该就是这样啊Cursors.WaitCursor鼠标呈沙漏等待
      

  2.   

      SetValue(CursorProperty, Cursors.Wait);试试
      

  3.   


    这个代码在C#里能用么?C#中唯一一个SetValue函数是fieldInfo.SetValue,貌似和我现在的情况没什么关系。
    WindowAPI中也没找到SetValue这个函数。
      

  4.   

         我错了,C#中有很多个SetValue,刚才没看到那个滚动条,大概有上百个SetValue,能请fjkjfwjo 说明下,是那个class下的SetValue么?
      

  5.   

    应该有全局API鼠标状态方法吧!
    感觉应该有。
    以前用过键盘监听。应该类似吧。
      

  6.   

        看了guochangshan的帖子,去windowsAPI大全找了下,还真找到了一个:
        SetSystemCursor
    介绍:函数功能:该函数使一个应用程序定制系统光标。它用hcur规定的光标内容代替id定义的系统光标内容,接着销毁hour。    函数原型:BOOL SetSystemCursor(HCURSOR hour,DWORD id);    参数:    hcur:光标的句柄,该函数hcur标识的光标的内容代替id定义的系统光标内容。系统通过调用DestroyCursor函数销毁hour。因此hour不能是由LoadCursor函数载入的光标。要指定一个从资源载入的光标,先用CopyCursor函数复制该光标,然后把该副本传送给SetSystemCursor函数。    Id:指定由hour的内容替换系统光标。    下面是一系列的系统光标标识符:    OCR_APPSTARTING:标准箭头和小的沙漏;OCR_NORAAC:标准箭头    OCR_CROSS:交叉十字线光标:OCR_HAND:手的形状(WindowsNT5.0和以后版本)    OCR_HELP:箭头和向东标记;OCR_IBEAM:I形梁;OCR_NO:斜的圆    OCR_SIZEALL:四个方位的箭头分别指向北、南、东、西    OCR_SIZENESEW:双箭头分别指向东北和西南;OCR_SIZENS:双箭头,分别指向北和南    OCR_SIZENWSE:双箭头分别指向西北和东南;OCR_SIZEWE:双箭头分别指向西和东    OCR_UP:垂直箭头:OCR_WAIT:沙漏返回值:如果成功,返回非零值;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
        下班后,回家试试这个API,虽然我不喜欢C#中调用C++的东西,不过看样子没办法了,要实现效果只能这样了吧。
      

  7.   


    鼠标的图像是windows保存,并负责实时更新的,所以你想要按照变成方法控制,光程序内部是困难滴
      

  8.   

    我当初做过一个鼠标变化 是自己画出来的一个鼠标。。根据一个图片然后找坐标。。 但是只能在窗体内。
    移动到窗体外 就变回来了。。public void SetCursor(Bitmap cursor, Point hotPoint)
            { 
                int hotX = hotPoint.X; 
                int hotY = hotPoint.Y; 
                Bitmap myNewCursor = new Bitmap(cursor.Width * 2 - hotX, cursor.Height * 2 - hotY); 
                Graphics g = Graphics.FromImage(myNewCursor); 
                g.Clear(Color.FromArgb(0, 0, 0, 0)); 
                g.DrawImage(cursor, cursor.Width - hotX, cursor.Height - hotY, cursor.Width, cursor.Height); 
                this.Cursor = new Cursor(myNewCursor.GetHicon()); 
                g.Dispose(); 
                myNewCursor.Dispose();
            }
      

  9.   

        经过测试,API SetSystemCurrsor可以实现将系统的鼠标修改为代码中指定的鼠标。
        以下是我的测试代码:
               [DllImport("user32.dll")]
            public static extern int SetSystemCursor(int hcur, int id);        public const int OCR_NORMAL = 32512; //表示正常状态下的鼠标        private void btnSetCursor_Click(object sender, EventArgs e)
            {
                Cursor MyCur = new Cursor(@"D:\eye.cur");
                SetSystemCursor((int)MyCur.Handle, OCR_NORMAL);        }
            鼠标已经成功的切换为eye.cur了,但是悲剧发生了,我的鼠标改不回来了!!!!!!
            所以大家还是别试这段代码了,省得和我一样悲剧。
      

  10.   

        鼠标终于改回来了,用Win7的个性化设置改回来的。
         饿,好吧,我承认我很搓。
      

  11.   

        实际应用的话,依靠windowsAPI的支持是可以达到我要的效果的。至于有什么隐患和危险,我水平不够,尚未发现。