如何让眼球跟随光标移动
本文关键字:跟随 光标 移动 | 更新日期: 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
事件处理程序中编写代码以匹配这些区域。