我正在使用vb.net,其中我已将背景图像放入每个表单。图像大小为1024X768。当我打开表单时,它需要花费太多时间才能打开。和屏幕是波动的。你能告诉我如何删除这类问题,
很快回复我 谢谢 萨米尔
答案 0 :(得分:1)
我假设(希望)你没有在设计器中设置每个表单的BackgroundImage
属性,因为这意味着你的可执行文件的大小至少是表单总数的3 MB倍。
因此,您可能在表单的Load事件或其构造函数中有代码,以从文件或嵌入式资源加载BackgroundImage
。这意味着每次创建和显示表单时都要加载3 MB图像文件。
有不同的方法可以做这样的事情,但无论你做什么,你都要确保你只在程序的生命周期内将这个文件加载到Bitmap
一次,然后重复使用它形成。一种简单的方法是修改每个表单的构造函数(主表单除外),将Bitmap
作为参数并将其设置为表单的BackgroundImage:
public SomeForm(Bitmap backgroundImage)
{
this.BackgroundImage = backgroundImage;
}
在主窗体的Load事件中,您将创建一个Bitmap并从任何地方加载它(带有一个大图像)并将其设置为主窗体的BackgroundImage:
this.BackgroundImage = Bitmap.FromFile('yadda.bmp');
然后,无论何时创建并显示另一个表单,都可以这样做:
SomeForm sform = new SomeForm(this.BackgroundImage);
sform.Show();
这种方法将确保您的程序只在主表单加载时将此文件加载到内存中。您看到的延迟的一部分是由于渲染图像所花费的时间(而不是从磁盘加载它所花费的时间),因此这可能无法解决您的所有问题。我建议您不要将大图像作为应用程序中每个表单的背景吗?