在我的C#
WinForms
应用程序中,我有一个嵌套在TabControl
其中的WebBrowser
控件。
页面加载时(Silverlight控制页面),我在页面中获得的音频和视频就很好。
但是当我打电话
tabControl1.TabPages.Remove(myTabPage);
我仍然听到音频播放。如何从内存中清除当前的webBrowser?
您已经从选项卡控件中删除了选项卡页。您尚未破坏选项卡页面,也没有破坏其包含的控件。
实际上,在显示代码之后,您可以立即执行
tabControl2.TabPages.Add(myTabPage);
将同一标签页添加到其他标签控件。Web浏览器通常会执行类似的操作,以启用该功能,您可以在其中将选项卡拖放到另一个窗口。这也是暂时使选项卡页不可见的方式,因为Visible
TabControl没有属性。
您需要做的是为选项卡页面控件调用Dispose方法myTabPage
。通常,一旦框架的父选项卡控件被销毁,该框架将自动处理此问题,但是由于您是从该控件的父容器中手动删除该控件,因此不会发生这种情况。您必须手动处理它。修改您的代码,如下所示:
tabControl1.TabPages.Remove(myTabPage);
myTabPage.Dispose();
这应该处理选项卡页及其子控件(包括WebBrowser)的资源。
但这并不一定会停止声音,至少不会立即停止。为了确保这种情况发生,您需要将WebBrowser控件的Source
属性设置为null
。您必须在处置标签页之前执行此操作(您不能修改已处置对象的属性)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句