首先,我是 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();
    }
}

基本上,在鼠标移动时,无效。
在 Paint 上,绘制您的圆圈。

关于c# - 想要在 C# 中绘制一个圆圈来跟随我的鼠标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1140076/

10-13 08:17