Udostępnij za pośrednictwem


Jak: Ustawianie obrazów w czasie działania programu (Formularze Windows)

Obraz wyświetlany przez kontrolkę PictureBox windows Forms można ustawić programowo.

Aby programowo ustawić obraz

  • Ustaw właściwość Image przy użyciu metody FromFile klasy Image.

    W poniższym przykładzie ścieżka ustawiona dla lokalizacji obrazu to folder Moje dokumenty. Dzieje się tak, ponieważ można założyć, że większość komputerów z systemem operacyjnym Windows będzie zawierać ten katalog. Dzięki temu użytkownicy z minimalnymi poziomami dostępu systemu mogą bezpiecznie uruchamiać aplikację. W poniższym przykładzie zakłada się, że formularz ma już dodaną kontrolkę 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"));
       }
    

Aby wyczyścić grafikę

  • Najpierw zwolnij pamięć używaną przez obraz, a następnie wyczyść grafikę. Mechanizm odśmiecania pamięci zwolni zasoby pamięci później, jeśli pojawią się problemy z zarządzaniem pamięcią.

    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;
    }
    

    Uwaga / Notatka

    Aby uzyskać więcej informacji na temat tego, dlaczego w ten sposób należy użyć metody Dispose, zobacz Czyszczenie niezarządzanych zasobów.

    Ten kod wyczyści obraz, nawet jeśli grafika została załadowana do kontrolki w czasie projektowania.

Zobacz także