打开web浏览器

本文关键字:浏览器 web 打开 | 更新日期: 2023-09-27 18:00:20

我创建了两个按钮关闭和新选项卡以及一个加载谷歌的web浏览器。当我单击新选项卡时,它会打开新选项卡,但不会打开web浏览器。这是我目前为止从微软帮助网站上得到的代码。我使用的是带有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);
}

打开web浏览器

您的代码中缺少Web浏览器控件:

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);
}

您还必须向选项卡中添加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-属性:

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);
}