c# 调用showDialog后需要Dispose

对于winform来说,大家可能有一个惯性认识或者潜意识,Winform在关闭时(Close()方法被调用时),会自动调用Dispose。确实,对很多对象,Close()方法会调用Dispose。然而,对Winform,并不总是成立,只有当Winform以Show的方式,及无模式的方式弹出时,Close才会调用Dispose,也就是说用户在这种情况下关闭对话框,Dispose会马上被调用,资源会马上被释放。

但是对ShowDialog,及模式对话框的情况就不是这样了,你必须显示调用dispose。

Microsoft代码:

http://msdn.microsoft.com/zh-cn/library/c7ykbedk(VS.80).aspx 

复制代码
public void ShowMyDialogBox()
{
   Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }
   testDialog.Dispose();
}
复制代码

这是为什么呢。原来Winform的设计者不得不这么做,如果在Close时就调用Dispose,模式对话框的调用者就没法访问对话框的属性,比如DialogResult,用户在TextBox上的输入等等,所以记住,在用ShowDialog模式显示窗口时,在下面加上一行代码,form.Dispose()来释放资源。

C#中,可以使用 `System.Drawing` 命名空间来处理图片,使用 `System.Windows.Media` 命名空间来处理视频。下面是一些示例代码来演示如何在C#调用图片和视频: 1. 调用图片: ```csharp using System; using System.Drawing; class Program { static void Main(string[] args) { // 加载图片 Image image = Image.FromFile("path_to_image.jpg"); // 显示图片 using (var form = new System.Windows.Forms.Form()) { form.BackgroundImage = image; form.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; form.ClientSize = new System.Drawing.Size(image.Width, image.Height); form.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; form.ShowDialog(); } // 释放图片资源 image.Dispose(); } } ``` 上述代码通过 `Image.FromFile` 方法加载图片,然后使用 `System.Windows.Forms.Form` 来显示图片。你需要将 `"path_to_image.jpg"` 替换为你实际的图片路径。 2. 调用视频: ```csharp using System; using System.Windows.Forms; class Program { static void Main(string[] args) { // 加载视频 string videoPath = "path_to_video.mp4"; var mediaPlayer = new AxWMPLib.AxWindowsMediaPlayer(); mediaPlayer.CreateControl(); mediaPlayer.URL = videoPath; // 显示视频 using (var form = new Form()) { form.Controls.Add(mediaPlayer); form.ClientSize = new System.Drawing.Size(800, 600); mediaPlayer.Dock = DockStyle.Fill; mediaPlayer.Play(); Application.Run(form); } // 释放视频资源 mediaPlayer.Dispose(); } } ``` 上述代码使用 `AxWMPLib.AxWindowsMediaPlayer` 控件来加载和显示视频。你需要将 `"path_to_video.mp4"` 替换为你实际的视频路径。 请注意,在运行这些示例代码之前,确保你已经添加了相应的引用,并且替换了正确的图片和视频路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值