2013-02-21 3 views
0

Я создал две кнопки рядом и новую вкладку и веб-браузер, который загружает Google. Когда я нажимаю новую вкладку, она открывает новую вкладку, но не открывает веб-браузер. Вот код, который у меня есть до сих пор, который находится на справочном сайте 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); 
} 

На данный момент у меня есть этот код, но когда я ввожу в поле поиска работает только в TabPage 1 , а не в какой-либо из новых вкладок, которые я открываю, поэтому мне нужно добавить код в SearchBox ?

мой код:

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

спасибо, попробуем это, вкладки будут только открываться Google – user1934845

+0

отлично работает, спасибо, что есть способ, которым пользователь не может закрыть первую вкладку – user1934845

+0

Да, конечно. Я обновил ответ;) – Carsten

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

+0

Это работает, но веб-браузер очень маленький в углу формы и должен быть привязан, также есть способ, чтобы пользователь не удалял последней вкладке так, чтобы ее всегда было – user1934845

+0

@ user1934845 уверенно, см. редактирование – VladL

Смежные вопросы