如何让眼球跟随光标移动

本文关键字:跟随 光标 移动 | 更新日期: 2023-09-27 18:18:04

我创建了两个圆圈作为眼睛和两个眼球。我想随着光标移动这些眼球。我该怎么办?请帮助! !

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace nighat_google
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        SolidBrush s=new SolidBrush(Color.Black);
        e.Graphics.DrawEllipse(Pens.Red, 50, 50, 100, 100);
        e.Graphics.DrawEllipse(Pens.Red, 170, 50, 100, 100); 
        e.Graphics.FillEllipse(s, 90, 50, 20, 20 );
        e.Graphics.FillEllipse(s, 210, 50, 20, 20);
    }
}
}

如何让眼球跟随光标移动

没有人会帮你写代码,所以让我们从逻辑上思考这个问题。

问题是更新UI以响应鼠标光标的移动。

因此,解决方案的关键是找到一种方法来跟踪鼠标光标的移动。

. net框架已经提供了一个事件来告诉你鼠标何时移动。它被巧妙地称为MouseMove。您可以通过阅读文档或在Visual Studio环境中搜索事件列表来找到它。

所以你所需要做的就是处理MouseMove事件,使你的眼球无效(使用Invalidate方法),并在Paint事件处理程序内部用正确的位置重新绘制它们(正如你在所示的代码中所做的那样)。


你的下一个问题可能是,我怎么知道应该把眼球朝向哪个方向?好吧,既然你想让他们看鼠标光标,你需要弄清楚鼠标光标在Paint事件处理程序中的位置。

也有一个方法:Cursor.Position

返回一个表示光标在屏幕坐标中的位置的Point。屏幕坐标正是你想要的,因为它们会告诉你鼠标光标在屏幕的哪个区域。在心理上将屏幕划分为与眼球区域相对应的区域,然后在Paint事件处理程序中编写代码以匹配这些区域。