如何刷新PictureBox

13

我有一个小问题要问。

假设我在pictureBox上写了一个椭圆,然后点击了一个按钮。我想让pictureBox自己刷新。

我尝试了PictureBox.Invalidate(),但没能成功。 致以最好的祝福...


仅供澄清:您是在PictureBox控件上绘制椭圆还是在PictureBox中显示的图片上绘制椭圆? - Steve
@Steve,您能解释一下区别吗? - unnamed
尝试使用Hide();和Show();,它会被刷新。 - Rosmarine Popcorn
如果您在图片上绘制了一个椭圆形(即添加到PictureBox.Image的内容),则需要重新分配此图片。 如果您在放置PictureBox的窗体上绘制了某些内容,则刷新/重绘PictureBox应该就足够了。 - Steve
3个回答

20

2
有几种方法可以更新PictureBox,使用的方法会影响到程序是否存在某些延迟。我曾经编写一个在PictureBox中绘制输入字符的程序,但按键处理速度较慢,因此当我快速打字时会出现延迟。
如果每次按键后 pictureBox.Refresh(); ,那么它会立即刷新图片,无论如何都会发生。这样,在我快速打字时,我可以看到PictureBox试图跟上我的速度,因为它绘制了每个字符。
相反,如果我选择 pictureBox.Invalidate(); 则也可以刷新图片,但只能在系统有空闲时间时才刷新。这样,当我快速打字时,我看不到任何变化,因为系统正在努力追赶,然后我打的所有内容突然出现了。
通常情况下,Refresh更好,但是这里有一篇文章描述了一些情况下Invalidate是更好的选择。

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接