如何:在运行时设置图片(Windows 窗体)

更新:2007 年 11 月

可通过编程方式设置 Windows 窗体 PictureBox 控件显示的图像。

以编程方式设置图片

  • 使用 Image 类的 FromFile 方法设置 Image 属性。

    在下面的示例中,图像位置的路径设置是 My Documents 文件夹。这样做是因为可假定大多数运行 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 窗体)

如何:在运行时修改图片的大小或位置(Windows 窗体)

参考

PictureBox 控件概述(Windows 窗体)

PictureBox

Image.FromFile

其他资源

PictureBox 控件(Windows 窗体)