Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使眼球跟随光标移动?_C#_.net - Fatal编程技术网

C# 如何使眼球跟随光标移动?

C# 如何使眼球跟随光标移动?,c#,.net,C#,.net,我已经创建了两个圆圈作为眼睛和两个眼球。我想用光标移动这些眼球。我该怎么办? 请帮帮我 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_goog

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

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 Framework已经提供了一个事件,告诉您鼠标何时移动。它的名字很巧妙。通过阅读文档或在VisualStudio环境中搜索事件列表,您可以自己找到这一点

因此,您所需要做的就是处理
MouseMove
事件,使眼球无效(使用),并在
Paint
事件处理程序中的正确位置重新绘制眼球(如您在所示代码中所做的)


你的下一个问题可能是我如何知道吸引眼球的方向?好的,因为您希望他们查看鼠标光标,所以您需要找出鼠标光标在
Paint
事件处理程序中的位置

还有一种方法:

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