打开Web浏览器

时间:2013-02-21 13:11:17

标签: c# winforms browser tabcontrol

我创建了两个按钮关闭,新标签和一个加载谷歌的网络浏览器。单击新选项卡时,它会打开新选项卡,但不会打开Web浏览器。 这是我到目前为止的代码,它来自Microsoft帮助站点。我正在使用带有c#的Visual Studio 2012。

private void newTab_Click(object sender, EventArgs e)
{
    string title = "TabPage " + (tabControl1.TabCount + 1).ToString();
    TabPage myTabPage = new TabPage(title);
    tabControl1.TabPages.Add(myTabPage);
}

private void closeTab_Click(object sender, EventArgs e)
{
    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}

目前我有这个代码,但是当我在搜索框中输入时,它只适用于标签页1 而不是我打开的任何新标签,所以我需要在搜索框中添加一些代码?

我的代码是:

private void newTab_Click(object sender, EventArgs e)
{
    string title = "TabPage " + (tabControl1.TabCount + 1).ToString();
    TabPage myTabPage = new TabPage(title);


    var browser = new WebBrowser();
    browser.Dock = DockStyle.Fill;
    browser.Url = new Uri(@"http://www.google.com");


    myTabPage.Controls.Add(browser);
    tabControl1.TabPages.Add(myTabPage);

}

2 个答案:

答案 0 :(得分:0)

您还必须在标签中添加WebBrowser控件的新实例:

private void newTab_Click(object sender, EventArgs e)
{
    string title = "TabPage " + (tabControl1.TabCount + 1).ToString();
    TabPage myTabPage = new TabPage(title);

    // Create new WebBrowser instance
    var browser = new WebBrowser();
    browser.Dock = DockStyle.Fill;
    browser.Url = new Uri(@"http://www.google.de");

    // Add the WebBrowser control to the TabPage.
    myTabPage.Controls.Add(browser);
    tabControl1.TabPages.Add(myTabPage);
}

每个TabPage最初都是空的,就像你使用设计师添加它一样。它的内容取决于您要添加的内容。共享WebBrowser - 控制没有意义,因为我想在不同的标签上打开不同的网站。

如果您不希望用户关闭第一个标签,您只需检查用户请求关闭的标签是否是第一个创建的标签:

private void closeTab_Click(object sender, EventArgs e)
{
    // Is the Tab Page the first one?
    if (tabControl1.SelectedTab == tabControl1.TabPages[0])
        return;

    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}

如果您希望至少一个标签页保持“开放”状态,您可以使用TabCount - 属性:

private void closeTab_Click(object sender, EventArgs e)
{
    // Is the Tab Page the last one opened?
    if (tabControl1.TabCount == 1)
        return;

    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}

答案 1 :(得分:0)

您的代码中缺少webbrowser控件:

private void newTab_Click(object sender, EventArgs e)
{
        string title = "TabPage " + (tabControl1.TabCount + 1).ToString();
        TabPage myTabPage = new TabPage(title);
        tabControl1.TabPages.Add(myTabPage);
        WebBrowser wb = new WebBrowser();
        myTabPage.Controls.Add(wb);
        wb.Navigate("google.com");
}

private void closeTab_Click(object sender, EventArgs e)
{
    if(tabControl1.TabPages.Count == 1)
       return;

    tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}