[求助!急!]C#自定义鼠标样式,请大家帮忙看看

奇点码农 2019-01-22 11:03:08
在写一个项目遇到一个需求:根据选择选择不同radioButton生成不同的自定义鼠标样式,但是当鼠标在datagridview范围内的时候,鼠标的样式还是小箭头,偶尔会闪烁称我定义的图片,但是一闪就又变成小箭头了,我测了一下如果出了datagridview的范围是可以的,是不是datagridview需要设置什么属性啊!请大神指教,感谢感谢!
代码如下:

private void dgv_MicrPlate_Layout_MouseHover(object sender, EventArgs e)
{
try
{
Bitmap bitmap = (Bitmap)GetImage(Application.StartupPath + "\\MicrPlate\\" + Cursor_Path + ".png");

SetCursor(bitmap, new Point(0, 0));
//this.Cursor= Cursors.Hand;
}
catch (Exception ex)
{

LogHelper.WriteErrorLog(ex);
throw ex;
}
}

private object GetImage(string path_temp)
{
System.IO.FileStream fs = new System.IO.FileStream(path_temp, System.IO.FileMode.Open);
try
{
System.Drawing.Image image = System.Drawing.Image.FromStream(fs);
return image;
}
catch (Exception ex)
{
LogHelper.WriteErrorLog(ex);
throw ex;
}
finally
{
fs.Close();
}
}
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();
}
...全文
2040 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alley.h 2019-01-31
  • 打赏
  • 举报
回复
学习了

爱唱歌的小白 2019-01-25
  • 打赏
  • 举报
回复
以前研究过,现在已经忘记了 = =
kekuihuazi 2019-01-25
  • 打赏
  • 举报
回复
以前研究过,现在已经忘记了
shexunyu 2019-01-25
  • 打赏
  • 举报
回复
了解了,学习了
luj_1768 2019-01-24
  • 打赏
  • 举报
回复
可能与计算资源占用有关:标准图标省资源,dbgrid 占用资源比其他代码多。所以你的代码没有问题。
還是 2019-01-24
  • 打赏
  • 举报
回复
这个事件什么鬼
足球中国 2019-01-24
  • 打赏
  • 举报
回复
引用 21 楼 xuzuning 的回复:
若水GIF截图 动态截图工具 都是很好用的gif截图工具,当然它们都出自同一个C++代码 精细的控制 Grid 中的鼠标样式,有得不偿失的感觉。 其实楼主的只整体控制的方案已经是很好的了
若水GIF截图 这个东西确定不是易语言写的??
csdnFUCKINGSUCKS 2019-01-24
  • 打赏
  • 举报
回复
引用 17 楼 足球中国 的回复:
[quote=引用 2 楼 3ch0 的回复:] 用你的代码试了下,没什么闪烁的问题出现。
你这个录屏软件叫啥??[/quote] LICEcap
苹果lianxyq 2019-01-24
  • 打赏
  • 举报
回复
冒个泡
sardy 2019-01-24
  • 打赏
  • 举报
回复
不知道。。。。。
森。 2019-01-23
  • 打赏
  • 举报
回复
自己!顶一下!求大神现身!
奇点码农 2019-01-23
  • 打赏
  • 举报
回复
引用 21 楼 xuzuning 的回复:
若水GIF截图
动态截图工具
都是很好用的gif截图工具,当然它们都出自同一个C++代码

精细的控制 Grid 中的鼠标样式,有得不偿失的感觉。
其实楼主的只整体控制的方案已经是很好的了

呵呵 !等有时间再研究研究!现在先在点击完毕之后给个变换样式作为提示,当移动到datagridview的时候就把鼠标样式变为hand.项目有点急
奇点码农 2019-01-23
  • 打赏
  • 举报
回复
顶一下,请大神们,帮忙看看
道亦无名 2019-01-23
  • 打赏
  • 举报
回复
可以吧
xuzuning 2019-01-23
  • 打赏
  • 举报
回复
若水GIF截图 动态截图工具 都是很好用的gif截图工具,当然它们都出自同一个C++代码 精细的控制 Grid 中的鼠标样式,有得不偿失的感觉。 其实楼主的只整体控制的方案已经是很好的了
足球中国 2019-01-23
  • 打赏
  • 举报
回复
自我感觉应该继承这个datagridview 重写 cursor属性。因为datagridview本身的代码会重新设置。
足球中国 2019-01-23
  • 打赏
  • 举报
回复
引用 2 楼 3ch0 的回复:
用你的代码试了下,没什么闪烁的问题出现。
你这个录屏软件叫啥??
weixin_44612832 2019-01-23
  • 打赏
  • 举报
回复
设置的是 Form 的鼠标样式,与 DataGridView 的设置无关
由于优先级的关系,DataGridView 中与拖动相关的鼠标样式是不会变化的
loveljy_19901114 2019-01-23
  • 打赏
  • 举报
回复
是不是应该用MouseEnter啊
碧海蓝天Eric 2019-01-23
  • 打赏
  • 举报
回复
以前研究过,现在已经忘记了
加载更多回复(12)

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧