Практическое руководство. Настройка рисунков во время выполнения (Windows Forms)

Вы можете программно задать изображение, отображаемое элементом управления Windows Forms PictureBox .

Установка рисунка программным способом

  • Image Задайте свойство с помощью FromFile метода Image класса.

    В приведенном ниже примере путь, заданный для расположения изображения, — папка "Мои документы". Это делается, так как можно предположить, что большинство компьютеров под управлением операционной системы Windows будут включать этот каталог. Это также позволяет пользователям с минимальным уровнем доступа к системе безопасно запускать приложение. В приведенном ниже примере предполагается, что форма с элементом управления PictureBox уже добавлена.

    Private Sub LoadNewPict()
       ' You should replace the bold image
       ' in the sample below with an icon of your own choosing.
       PictureBox1.Image = Image.FromFile _
       (System.Environment.GetFolderPath _
       (System.Environment.SpecialFolder.Personal) _
       & "\Image.gif")
    End Sub
    
    private void LoadNewPict(){
       // You should replace the bold image
       // in the sample below with an icon of your own choosing.
       // Note the escape character used (@) when specifying the path.
       pictureBox1.Image = Image.FromFile
       (System.Environment.GetFolderPath
       (System.Environment.SpecialFolder.Personal)
       + @"\Image.gif");
    }
    
    private:
       void LoadNewPict()
       {
          // You should replace the bold image
          // in the sample below with an icon of your own choosing.
          pictureBox1->Image = Image::FromFile(String::Concat(
             System::Environment::GetFolderPath(
             System::Environment::SpecialFolder::Personal),
             "\\Image.gif"));
       }
    

Очистка рисунка

  • Сначала отпустите память, используемую изображением, а затем снимите рисунок. Сборка мусора освободит память позже, если управление памятью становится проблемой.

    If Not (PictureBox1.Image Is Nothing) Then
       PictureBox1.Image.Dispose()
       PictureBox1.Image = Nothing
    End If
    
    if (pictureBox1.Image != null)
    {
       pictureBox1.Image.Dispose();
       pictureBox1.Image = null;
    }
    
    if (pictureBox1->Image != nullptr)
    {
       pictureBox1->Image->Dispose();
       pictureBox1->Image = nullptr;
    }
    

    Замечание

    Дополнительные сведения о том, почему метод следует использовать Dispose таким образом, см. в разделе "Очистка неуправляемых ресурсов".

    Этот код очищает изображение, даже если рисунок был загружен в элемент управления во время разработки.

См. также