Слишком много времени для загрузки приложения в vb.net - PullRequest
0 голосов
/ 17 апреля 2010

Я использую vb.net, в котором я поместил фоновое изображение в каждую форму. Размер изображения 1024X768. Когда я открываю форму, ее открытие занимает слишком много времени.и экран колеблется. поэтому вы можете сказать мне, как удалить этот тип проблемы,

ответьте мне в ближайшее время спасибо Самир

1 Ответ

1 голос
/ 17 апреля 2010

Я предполагаю (надеюсь), что вы не устанавливаете свойство BackgroundImage каждой формы в конструкторе, так как это будет означать, что размер вашего исполняемого файла будет как минимум в 3 МБ больше общего числа форм.

Таким образом, у вас, вероятно, есть код в событии Load формы или его конструкторе для загрузки BackgroundImage из файла или встроенного ресурса. Это означало бы, что вы будете загружать файл изображения размером 3 МБ каждый раз, когда создаете и отображаете форму.

Существуют разные способы сделать что-то подобное, но независимо от того, что вы делаете, вы хотите убедиться, что вы загружаете этот файл в Bitmap только один раз за время жизни вашей программы, а затем повторно используете его для каждой формы. Простой способ включить это состоит в том, чтобы изменить конструктор каждой формы (кроме вашей основной формы), чтобы взять Bitmap в качестве параметра и установить его в качестве BackgroundImage формы:

public SomeForm(Bitmap backgroundImage)
{
    this.BackgroundImage = backgroundImage;
}

В событии Load главной формы вы должны создать растровое изображение и загрузить его (с одним большим изображением) из любого места и установить его в качестве BackgroundImage главной формы:

this.BackgroundImage = Bitmap.FromFile('yadda.bmp');

Затем, всякий раз, когда вы создаете и показываете другую форму, вы делаете это так:

SomeForm sform = new SomeForm(this.BackgroundImage);
sform.Show();

Этот подход гарантирует, что ваша программа загружается в файл только один раз, когда загружается ваша основная форма. Некоторая доля задержки, которую вы видите, обусловлена ​​временем, которое требуется для рендеринга изображения (в отличие от времени, которое требуется для его загрузки с диска), поэтому это может решить не все ваши проблемы. Могу ли я предложить не иметь огромное изображение в качестве фона для каждой формы в вашем приложении?

...