2013-02-21 176 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