我需要的是在每次移动鼠标时绘制指针所在的小红色方块。顺便说一句,这是一个图片框控件。
复制这个方块的最佳方法是什么?
所以,在@CBinet的帮助下,我已经能够做到这一点"指针方形"。我已将代码放在图片框的Paint事件中,而在MouseMove事件中,我存储鼠标的当前点并执行picturebox.Invalidate方法。
但是,现在我需要将光标从第一个屏幕截图中的文件中创建,位于正方形的底部。此刻我有这个:
正如我所说,我需要将光标放在方形的右下角,这样就像第一个截图一样。
什么是最好的解决方案?
答案 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);