我创造了两个圆圈作为眼睛和两个眼球。我想用光标移动来移动这些眼球。我该怎么办? 请帮助!!
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);
}
}
}
答案 0 :(得分:7)
没有人会为你编写代码,所以让我们从逻辑上思考这个问题。
问题是更新UI以响应鼠标光标的移动。
因此,解决方案的关键是找出一种跟踪鼠标光标移动的方法。
.NET Framework已经提供了一个事件,可以告诉您鼠标移动的时间。它被巧妙地称为MouseMove
。您可以通过阅读文档或在Visual Studio环境中搜索事件列表来自行找到它。
所以你需要做的就是处理MouseMove
事件,使你的眼球无效(使用Invalidate
method),并使用Paint
事件处理程序内的正确位置重绘它们(就像你在所显示的代码中所做的那样。)
您的下一个问题可能是我如何知道吸引眼球的方向?好吧,因为你希望他们看到鼠标光标,你需要弄清楚鼠标光标在Paint
事件处理程序中的位置。
也有一种方法:Cursor.Position
它返回一个Point
,表示光标在屏幕坐标中的位置。屏幕坐标正是您想要的,因为它们会告诉您鼠标光标位于屏幕的哪个区域。将屏幕明确地划分为与您的眼球区域对应的区域,然后编写代码以匹配您的内部{ {1}}事件处理程序。