首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebBrowser控件和内存的新实例

WebBrowser控件和内存的新实例
EN

Stack Overflow用户
提问于 2014-01-15 19:00:56
回答 1查看 1K关注 0票数 1

我正在创建一个有多达10个选项卡的选项卡控件。我想在每个标签中添加一个Web浏览器。用户可以控制显示了多少选项卡。通过对每个选项卡使用相同的控件或为每个选项卡使用单独的控件来节省内存。下面是我想做的事:

代码语言:javascript
复制
    private System.Windows.Forms.WebBrowser webBrowser1 = null;
    private System.Windows.Forms.WebBrowser webBrowser2 = null;
    private System.Windows.Forms.WebBrowser webBrowser3 = null;

    // Display one tab
    switch (tabCount)
    {
            case 1:
                // tab 1
                tabItem1.Visibility = System.Windows.Visibility.Visible;
                webBrower1 = new WebBrowser();
                webBrowser1.Navigate(txtBoxServerURL.Text));
                // tab 2
                tabItem1.Visibility = System.Windows.Visibility.Collapsed;
                webBrower2 = null;
                break;
                // process remaining tabs and set each webBrowser(2,3,4...) to null
            case 2:
                // tab 1
                tabItem1.Visibility = System.Windows.Visibility.Visible;
                webBrower1 = new WebBrowser();
                webBrowser1.Navigate(txtBoxServerURL.Text));
                // tab 2
                tabItem1.Visibility = System.Windows.Visibility.Visible;
                webBrower2 = new WebBrowser();
                webBrowser2.Navigate(txtBoxServerURL.Text));
                break;
                // tab 3
                tabItem1.Visibility = System.Windows.Visibility.Collapsed;
                webBrower3 = null;
                // process remaining tabs and set each webBrowser(3,4,5...) to null
            // define remaining cases
            default:
                break;
  }

还是应该对所有选项卡使用一个WebBrowser控件和一个WindowsFormsHost控件:

代码语言:javascript
复制
        for (int i = 0; i < comboCount; i++)
        {
            string title = "Tab Page " + (i + 1);
            TabItem tabItem = new TabItem();
            tabItem.Name = title;
            tabItem.Items.Add(tabPage);  
            System.Windows.Forms.WebBrowser.WebBrowser webBrowser = new System.Windows.Forms.WebBrowser.WebBrowser();
            webBrowser.Navigate(txtBoxServerURL.Text); 
            windowsFormHost.Child = webBrowser;           
        }

如果有什么错误,很抱歉。我在没有编译的情况下编写了这个示例。此外,我还在我的WPF应用程序中使用System.Windows.Form WebBrowser控件。我不得不用WPF WebBrowser控件返回网页标题时出现了许多不一致之处。希望这一切都有意义。谢谢。

大卫

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-15 22:18:45

for循环中进行维护要容易得多。因此,第二段代码的可维护性将大大提高。

我还建议您深入了解WPF和MVVM --一个带有浏览器控件的视图可以非常容易地重用和实例化。这种模式允许你抽象出你的视觉元素,只关注你想要呈现的数据,在这种情况下,你的网页。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21146006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档