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

当前鼠标点上的C#-矩形,c#,winforms,drawing,C#,Winforms,Drawing,我想复制以下游标: 我需要的是画一个小红方块,每次我移动鼠标时,指针都在这个方块上。顺便说一下,这是一个picturebox控件 复制这个正方形的最好方法是什么 因此,在@CBinet的帮助下,我已经能够完成这个“指针方块”。我将代码放在picturebox的Paint事件中,并在MouseMove事件中存储鼠标的当前点,然后执行picturebox.Invalidate方法 但是,现在我需要将从第一个屏幕截图中的文件创建的光标放在正方形的底部。此时此刻,我有这样一个想法: 正如我所说,我需

我想复制以下游标:

我需要的是画一个小红方块,每次我移动鼠标时,指针都在这个方块上。顺便说一下,这是一个picturebox控件

复制这个正方形的最好方法是什么

因此,在@CBinet的帮助下,我已经能够完成这个“指针方块”。我将代码放在picturebox的Paint事件中,并在MouseMove事件中存储鼠标的当前点,然后执行picturebox.Invalidate方法

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

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

最佳解决方案是什么?

使用,您可以获得光标在屏幕上的位置。然后,您可以在该位置绘制任意大小的矩形,然后将矩形偏移其大小的减半

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的引用

更多信息:

编辑 如果要将光标定位在矩形的右下角,只需更改矩形的偏移量:

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

您应该提供一个尝试(实际代码)来尝试您想要实现的目标,并指出存在问题的地方。您是希望矩形保持不变还是跟随鼠标?对于前者,您可以在移动事件中使用graphicsfromImage对象绘制到图像中,也可以在绘制事件及其e.graphics参数的pbox int上绘制。对于后者,也可以使用pbox.creategraphics对象的移动事件和绘图前的刷新调用。您是想将框添加到任何当前光标,还是可以创建一个光标文件,并在每次需要时将光标设置为该新光标?@BlakeThingstad几乎所有光标的左上角都已经有图形,因此添加他肯定不能那样做。他确实需要像你建议的那样创造一个新的。可能很多easier@Mat我没有任何代码,我尝试了一些方法,但没有正常工作,所以我来这里询问最好的方法是什么。您提供的代码帮助我实现了我所需要的,但现在我需要帮助将光标定位在正方形底部。我用其他东西编辑了我的问题。感谢您的帮助,您需要创建自己的鼠标光标图标,并且像@BlakeThingstad所说的那样,sqaure已经是其中的一部分。鼠标光标图标不能偏移。他们已经修复了sizeOk@Franck,谢谢,我想如果这是我唯一的选择,我会创建光标图标。