C# 如何释放GDI资源 注释当中有详细错误 10
publicvoidSetCursor(Bitmapcursor,PointhotPoint)//修改鼠标图标{inthotX=hotPoint.X;inthotY=ho...
public void SetCursor(Bitmap cursor, Point hotPoint)//修改鼠标图标
{
int hotX = hotPoint.X;
int hotY = hotPoint.Y;
myNewCursor = new Bitmap(cursor.Width * 2 - hotX, cursor.Height * 2 - hotY);//设置鼠标图标大小
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());
//引发的异常:“System.Runtime.InteropServices.ExternalException”(位于 System.Drawing.dll 中)其他信息: GDI + 中发生一般性错误。
g.Dispose();
myNewCursor.Dispose();
}
每次狂点鼠标就会有错误
这个程序是把鼠标图标改为其他 每次单击左键时一个样式,不单击时一个样式 展开
{
int hotX = hotPoint.X;
int hotY = hotPoint.Y;
myNewCursor = new Bitmap(cursor.Width * 2 - hotX, cursor.Height * 2 - hotY);//设置鼠标图标大小
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());
//引发的异常:“System.Runtime.InteropServices.ExternalException”(位于 System.Drawing.dll 中)其他信息: GDI + 中发生一般性错误。
g.Dispose();
myNewCursor.Dispose();
}
每次狂点鼠标就会有错误
这个程序是把鼠标图标改为其他 每次单击左键时一个样式,不单击时一个样式 展开
1个回答
展开全部
给你这个方法加锁
//调用处
lock setCursor(bitmap,point);
这样就不会出现狂点鼠标导致的异常,这个异常出现是应为上次都还没结束又再次被激活了导致的
更多追问追答
追问
"void”不是 lock 语句要求的引用类型
追答
private object locker = new object();
lock (locker)
{
setCursor(bitmap,point)
}
我家里的电脑没转VS所以你试下,不行你就搜一下lock的用法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询