首先,我是 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/