다음을 통해 공유


방법: 런타임에 그림 설정(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 메서드를 사용해야 하는 이유에 대한 자세한 내용은 관리되지 않는 리소스 정리를 참조하세요.

    이 코드는 디자인 타임에 그래픽이 컨트롤에 로드된 경우에도 이미지를 지웁니다.

참고 항목