加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

想要在C#中使用绘制的圆圈跟随我的鼠标

发布时间:2020-12-15 19:42:20 所属栏目:百科 来源:网络整理
导读:首先,我是C#真正的初学者,所以请保持温柔. 我正试图跟着我的光标圈.我不希望任何“小道”落在后面. private void Form1_MouseMove(object sender,MouseEventArgs e){ drawCircle(e.X,e.Y);}private void drawCircle(int x,int y){ Pen skyBluePen = new Pen(
首先,我是C#真正的初学者,所以请保持温柔.

我正试图跟着我的光标圈.我不希望任何“小道”落在后面.

private void Form1_MouseMove(object sender,MouseEventArgs e)
{

    drawCircle(e.X,e.Y);

}

private void drawCircle(int x,int y)
{
    Pen skyBluePen = new Pen(Brushes.DeepSkyBlue);
    Graphics graphics = CreateGraphics();
    graphics.DrawEllipse(
        skyBluePen,x - 150,y - 150,300,300);
    graphics.Dispose();
    this.Invalidate();
}

这可以正常工作,因为它绘制它并以鼠标为中心进行每次鼠标移动.但是,“this.Invalidate();”是错的.它在每次运动后“拉出”形状,所以我只能看到它的一瞥.但是,不包括它会导致每个绘制的圆圈保留在屏幕上.

我如何让一个圆圈“优雅地”跟随我的鼠标,而不是太过于跳跃而没有保留所有过去的圆圈?

解决方法

你可以这样做:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Paint(object sender,PaintEventArgs e)
    {
        Point local = this.PointToClient(Cursor.Position);
        e.Graphics.DrawEllipse(Pens.Red,local.X-25,local.Y-25,20,20);
    }

    private void Form1_MouseMove(object sender,MouseEventArgs e)
    {
        Invalidate();
    }
}

基本上,在鼠标移动时,无效.在画上,画出你的圆圈.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读