2013-02-21 270 views
0

我已经创建了两个按钮关闭和新的选项卡和加载谷歌的网页浏览器。当我点击新标签时,它会打开新标签,但不会打开网页浏览器。 这是我迄今为止来自Microsoft帮助网站的代码。我正在使用Visual Studio 2012与c#。打开网络浏览器

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

} 

回答

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

谢谢你会试试这个,标签只会打开谷歌 – user1934845 2013-02-21 13:59:21

+0

完美的作品谢谢你还有一种方式,用户不能关闭第一个标签 – user1934845 2013-02-21 14:01:54

+0

是的,当然是的。我已经更新了答案;) – Carsten 2013-02-21 14:53:56

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

谢谢我会看看它现在是否有效 – user1934845 2013-02-21 13:55:24

+0

这个工程,但webbrowser真的很小,在窗体的角落,需要被锚定还有一种方法,用户不删除最后一个选项卡让它总是有 – user1934845 2013-02-21 13:58:55

+0

@ user1934845肯定,看看编辑 – VladL 2013-02-21 14:04:49

相关问题