0

我创建了两个按钮关闭和新标签和一个加载谷歌的网络浏览器。当我单击新标签时,它会打开新标签,但不会打开网络浏览器。这是我到目前为止来自 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);

}
4

2 回答 2

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-Control 没有意义,因为您想在不同的选项卡上打开不同的网站,我猜。

如果您不希望用户关闭第一个选项卡,您可以简单地检查用户请求关闭的选项卡是否是第一个创建的选项卡:

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-Property:

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);
}
于 2013-02-21T13:17:06.827 回答
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);
}
于 2013-02-21T13:17:11.370 回答