Winforms 如何在picturebox中移动元素?

Winforms 如何在picturebox中移动元素?,winforms,picturebox,Winforms,Picturebox,有没有什么简单的方法可以移动用DrawImage或DrawString创建的图片部分 我的聪明想法是: 重写DrawImageDrawString方法,添加存储绘制图像的宽度、高度、左侧、顶部的功能,如果使用DrawImage方法来存储对象列表,则可能是布尔变量“sizeable”。将函数WhatToMove附加到PictureBox的MouseMove事件,该事件遍历存储的矩形对象列表,检测矩形光标所在的位置,如果是可调整大小的矩形,则检测光标是否位于矩形的任何边框上,并在单击时将这些内容作为

有没有什么简单的方法可以移动用DrawImage或DrawString创建的图片部分

我的聪明想法是: 重写DrawImageDrawString方法,添加存储绘制图像的宽度、高度、左侧、顶部的功能,如果使用DrawImage方法来存储对象列表,则可能是布尔变量“sizeable”。将函数WhatToMove附加到PictureBox的MouseMove事件,该事件遍历存储的矩形对象列表,检测矩形光标所在的位置,如果是可调整大小的矩形,则检测光标是否位于矩形的任何边框上,并在单击时将这些内容作为参数传递给MouseDown函数。然后MouseDown函数将新函数MoverResizer附加到MouseMove事件,该事件使用移动或调整大小的图像部分重新绘制图片框,更新列表中适当的矩形对象,并从MouseMove中分离WhatToMove。在鼠标上,按住并离开PictureBox的事件,分离MoverResizer并附加WhatToMove

如果你认为这个想法可以活下来,你会真的帮助我,如果告诉我如何覆盖DrawImage

我愚蠢的想法:


创建不带文本和边框的标签,并将其放置在PictureBox上正确的图像部分上。然后用他们自己的事件使他们变得拖拉和有规模。然后将标签的位置转换为图片部分的位置,并重新绘制picturebox。这很简单,但我认为没有上面的方法那么完美。

我已经用visual basic电源组矩形实现了这个愚蠢的想法。