C# - 当前鼠标点上的矩形

时间:2017-06-21 16:50:18

标签: c# winforms drawing

我想复制以下游标: Cursor

我需要的是在每次移动鼠标时绘制指针所在的小红色方块。顺便说一句,这是一个图片框控件。

复制这个方块的最佳方法是什么?

所以,在@CBinet的帮助下,我已经能够做到这一点"指针方形"。我已将代码放在图片框的Paint事件中,而在MouseMove事件中,我存储鼠标的当前点并执行picturebox.Invalidate方法。

但是,现在我需要将光标从第一个屏幕截图中的文件中创建,位于正方形的底部。此刻我有这个:

cursor

正如我所说,我需要将光标放在方形的右下角,这样就像第一个截图一样。

什么是最好的解决方案?

1 个答案:

答案 0 :(得分:0)

使用System.Windows.Forms.Cursor.Position,您可以在屏幕上获取光标的位置。然后你可以在任意大小的位置绘制一个矩形,然后将矩形偏移其大小的一半。

int x = Cursor.Position.X;
int y = Cursor.Position.Y;
int size = 10; // Arbitrary size

System.Drawing.Graphics graphics = CreateGraphics();
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(x - (size / 2), y - (size / 2), size, size);
graphics.DrawRectangle(System.Drawing.Pens.Red, rectangle);

请注意,您可能必须在当前项目中添加对 System.Drawing 的引用。

更多信息:
Cursor.Position Property
How to: Draw Graphics on a Windows Form

修改

如果您想将光标定位在矩形的右下角,您需要更改的是矩形的偏移量:

System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(x - size, y - size, size, size);