다음을 통해 공유


방법: 런타임에 그림 설정(Windows Forms)

업데이트: 2007년 11월

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.get_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 메서드를 사용해야 하는 이유에 대한 자세한 내용은 관리되지 않는 리소스 정리를 참조하십시오.

    이 코드는 디자인 타임에 그래픽을 컨트롤에 로드했더라도 이미지를 지웁니다.

참고 항목

작업

방법: 디자이너를 사용하여 그림 로드(Windows Forms)

방법: 런타임에 그림의 크기 또는 위치 수정(Windows Forms)

참조

PictureBox 컨트롤 개요(Windows Forms)

PictureBox

Image.FromFile

기타 리소스

PictureBox 컨트롤(Windows Forms)