2012-11-10 40 views
0

我只是想顯示WinForms.Webbrowser的全部歷史, 我知道如何向前和向後導航與Windows窗體的Webbrowser全部歷史

webBrowser1.Document.Window.History.Go/Back/Forward(1) 

我只是想知道如何可視化歷史記錄對象,如在一個DataGridView

DataGridView dgvChronic = new DataGridView(); 
dgvChronic.DataSource = webBrowser1.Document.Window.History; 

但這不起作用:/

我想要做這樣的事情(僞):

foreach (Link lk in webBrowser1.Document.Window.History) 
{ 
    dgvChronic.Rows.Add(lk, "blabla"); 
} 

我的解決方案:

private List<object> chronic = new List<object>(); 

    private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) 
    { 
    //Chronic hier erstellen 
    if (tsURL.Text != webBrowser1.Url.ToString()) 
    { 
     tsURL.Text = webBrowser1.Url.ToString(); 
     List<string> website = new List<string>(); 
     website.Add(DateTime.Now.ToString()); 
     website.Add(tsURL.Text); 
     chronic.Add(website); 
    } 
    } 

然後以可視化的歷史:

foreach (List<string> website in chronic) 
{ 
    dgvChronic.Rows.Add(website[0], website[1]); 
} 

生病標記trippinos答案爲接受,因爲它幾乎是相同的(我沒有測試它,但它看起來喜歡它也能工作)

回答

0

它似乎不受支持,但有一個相當簡單的解決方法,需要幾行。 看看這個主題: msdn webbrowser thread

希望這會有所幫助。

0

DataGridView.DataSource不支持WebBrowserHisory型。 您應該將每個導航的網址添加到DataTable,並將此表設置爲數據源DataGridView

+0

好的,那麼我怎樣才能從歷史中獲取URL? – Vloxxity

+0

如果您的意思是將URL保存在導航/導航或文檔完成事件中,這是一個壞主意,因爲他們在一次頁面更改時多次獲取triggert。 – Vloxxity