2010-11-19 60 views
2

我正在使用visual studio 2008禁用背景画

我有一个显示已处理图像的控件。每当处理参数改变时,我想更新这张照片,但不闪烁。如果在绘画之前我可以阻止窗户消隐该区域,则闪烁应该大部分消失。

问题是,该怎么做?

类似于: this.SetStyle(ControlStyles.AllPaintingInWmPaint,true); 应该这样做,除了需要我继承TableLayoutPanel控件(我花了一个小时试图做的事情)以及我所取得的成果,没有任何效果。

有没有简单的方法来关闭我的控件的背景画?

+0

您是否将控件的DoubleBuffered属性设置为true? – 2010-11-19 16:42:29

回答

4

您是否尝试过重写OnPaintBackground事件,无所事事?

protected override void OnPaintBackground(PaintEventArgs pevent) 
{ 
} 
+0

这适用于我! – Skizz 2010-11-19 16:54:08

+0

工程。现在我只需要弄清楚如何在没有搞乱表格编辑器的情况下对控件进行子类化! – 2010-11-19 17:23:32

-1

试试这个:

this.SuspendLayout(); 
// do update here 
this.ResumeLayout(); 

澄清:this的形式

+0

我只更新要绘制的图像。我实际上并没有改变任何有关表格的内容,只是使其无效,以便使用新图片进行重新绘制。问题是背景在绘画之前被清除,所以它会闪烁。 – 2010-11-19 16:53:17

+0

我明白了。对不起,我很困惑。 – 2010-11-19 16:56:33