【发布时间】:2009-08-11 15:50:34
【问题描述】:
我有一个存储在数据库中的背景图像,因此我没有设置表单的 BackgroundImage 属性,而是处理 OnPaint 事件以在每个表单的背景上绘制图像。问题是表单上的每个控件都会使父控件无效 - 表单,因此 OnPaint 会触发多次(12x)。即使图像在内存中,表格也会很快闪烁。我需要摆脱这种影响。我看不到如何确定哪个控件是最后一个导致父窗体重绘的方法,因此我只能应用一次背景。有什么想法吗?
protected override void OnPaint(PaintEventArgs e)
{
if (Program.AppManager.AppBackgroundImage != null && !this.EH_BackImageNotApplicable)
{
e.Graphics.DrawImage(Program.AppManager.AppBackgroundImage, this.ClientRectangle);
}
}
【问题讨论】:
-
可以分享一下OnPaint方法的代码吗?
-
刚刚添加。 OnPaint 方法在我的 FormBase 中被覆盖。如果您还需要什么,请告诉我。
标签: .net winforms image c#-3.0 background