c# 改变鼠标指针的显示位置

本文描述了在Winform项目中如何实现对象捕捉功能,通过隐藏默认鼠标指针并用十字标记替代,根据项目单位自动调整鼠标位置,提供类似CAD软件的精确绘图体验。
摘要由CSDN通过智能技术生成

我在winform的项目中有这样一个需求,绘图时,需要有一个辅助功能——对象捕捉,也就是参考CAD软件中,当开启了对象捕捉之后,鼠标的移动会按照单位进行移动了。

具体效果展示在我主页视频中有一个示例。有需要可以观看

实现思路为:

如果开启对象捕捉,将鼠标默认的指针隐藏掉,再绘制一个十字代替鼠标指针

//如果开启了对象捕捉,则根据单位修正鼠标指针位置
if (isOpenCatch)
{
    //根据我的单位进行修正
    PointmodifyPoint = ModifyByUnit(new Point(transformedX, transformedY), _unit);
    MousePos= new Point(modifyPoint.X, modifyPoint.Y);
   
   //隐藏鼠标指针
    Cursor.Hide();

    //绘制十字代替鼠标指针
    _g.DrawLine(new Pen(Color.Black), new Point(MousePos.X - 10, MousePos.Y), new             Point(MousePos.X + 10, MousePos.Y));
    _g.DrawLine(new Pen(Color.Black), new Point(MousePos.X, MousePos.Y - 10), new Point(MousePos.X, MousePos.Y + 10));
    this.Invalidate();
}
else
{
   //隐藏鼠标指针
    Cursor.Show();
}

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值