花费太多时间在vb.net中加载应用程序

时间:2010-04-17 11:59:47

标签: vb.net image load background

我正在使用vb.net,其中我已将背景图像放入每个表单。图像大小为1024X768。当我打开表单时,它需要花费太多时间才能打开。和屏幕是波动的。你能告诉我如何删除这类问题,

很快回复我 谢谢 萨米尔

1 个答案:

答案 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();

这种方法将确保您的程序只在主表单加载时将此文件加载到内存中。您看到的延迟的一部分是由于渲染图像所花费的时间(而不是从磁盘加载它所花费的时间),因此这可能无法解决您的所有问题。我建议您不要将大图像作为应用程序中每个表单的背景吗?