重新加载后,图片框丢失图纸

时间:2011-03-22 09:11:57

标签: c# .net graphics

我目前正在使用PictureBox并面临一个问题。

首先,我在PictureBox上画了一个椭圆。

它很好地绘制在图片框上。

但是当我最小化窗体并重新加载它时,PictureBox上绘制的椭圆会使bin消失。

任何人都可以建议解决这个问题...

感谢...... ..

此致 Pritesh Patel

5 个答案:

答案 0 :(得分:5)

.NET中的Graphics对象是not retained-mode,因此您需要在对象的Paint事件中绘制椭圆,在您的情况下是图片框。

答案 1 :(得分:3)

正如马丁所建议的,你应该在绘制表格时重新绘制图片。

如果不希望或不可能,那么唯一的另一个选择是绘制您在图片框中显示的图片。

您可以使用ImageGraphics.FromImage对象创建Graphics对象。使用此对象可以根据需要绘制图像,完成后可以将图像分配给图片框“Image属性”。只要您的表单对象存在,该图像就会被保留。

答案 2 :(得分:2)

我确实面临与屏幕重绘相同的问题。我解决这个问题的方法是将所有用户操作存储到List中,因此每次调用paint事件时,都会重放记录在列表中的所有操作。在您的情况下,所有x,y坐标都将存储到用户释放鼠标的位置。

虽然这一开始看起来很难,但你会欣赏它在实现Undo和Redo时提供的灵活性。

这是一个链接,其中包含完成此操作的代码示例。 http://social.msdn.microsoft.com/Forums/pl-PL/wpf/thread/048ae883-f3e2-4ddc-bb89-fd72f00dd755

答案 3 :(得分:1)

使用PictureBox的paint事件

来自MSDN的

  

重绘控件时会引发Paint事件。它将PaintEventArgs的实例传递给处理Paint事件的方法。

答案 4 :(得分:0)

您需要在paint事件中调用Draw方法。