我的目标是这样的:在鼠标移动时变换鼠标光标为自己添加的位图,并在位图上画出坐标点,然后把变化后的位图作为光标显示。结果如果鼠标移动太快的话,就出现了错误,并且伴随着内存增加。代码如下:
1 bmpCursor = global::XRF.Properties.Resources.Cross3;//作为光标的位图 2 Graphics g = Graphics.FromImage(bmpCursor); 3 Brush brush = new SolidBrush(Color.Black); 4 5 g.DrawString( (int)pf.X+"\r\n"+pf.Y, new Font(FontFamily.GenericSansSerif, 80f), brush, new PointF(0f, 0f));//在位图上画坐标点数值 6 7 IntPtr hIcon = bmpCursor.GetHicon(); 8 pictureBox1.Cursor = new Cursor(hIcon);//设置光标 9 10 brush.Dispose(); 11 g.Dispose();
我在做其他画图的程序时,发现操作图片的话,如果在循环中没有延迟的话,就会容易出错。通过测试也摸到一些轨律,但是不知道原因是什么?
感觉你要做像是 截图工具类的东西,把位图做成用户控件A 上面摆上label,鼠标移动A跟着,同时改变A的内容,如果你不想要光标可以把光标hide
好像光标资源是有使用限制的。
此外,你在读取图片的时候是否稳定?能否把这些图片都放内存?
try一下就好了
记录一下异常信息,可以找找类似问题的解决方案.