C#怎么移动已经绘制的图形

在C#里如何移动已经绘制的图形?
比如说在button1的callback下

Graphics graphics = pictureBox1.CreateGraphics();
Rectangle rect = new Rectangle(0, 0, 100, 50);
graphics.DrawRectangle(Pens.Red, rect);

在另一个button2的callback下,想移动这个矩形,该怎么处理?
只能采取设置
rect.Offset(ii, ii);
pictureBox1.Refresh();
graphics.DrawRectangle(pen, rect);
这种重绘的方法么?
如果我pictureBox1上面画了多个图形,重绘,那岂不是得每个图形都重画?
可否对每个图形进行单独改变?
每个图形绘制完后,C#保存每个图形的句柄吗?

如果你要选取图形进行移动所放处理,那应该要按照矢量图来存放信息,这个和位图不同。
需要设计一个数据结构存放图形的坐标,长度等信息。
一般常用的做法是定一个各种图形基类,不同的形状定以成派生类,绘制通过类成员函数进行。
那么你的整个矢量图就是一个该类对象的集合,对于如何选取其实就是对于这个集合的遍历,如果你向移动其中一个成员,那么要重新绘制这个集合。
你说的图形的句柄,是否是指位图的那个,我觉得不需要,你如果要用位图,那么就无法实现你说的功能。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答