Winforms Windows窗体Web浏览器完整历史记录

Winforms Windows窗体Web浏览器完整历史记录,winforms,datagridview,browser,browser-history,Winforms,Datagridview,Browser,Browser History,我只想显示WinForms.Webbrowser的完整历史记录, 我知道如何用手指向前和向后导航 webBrowser1.Document.Window.History.Go/Back/Forward(1) 我只是想知道如何可视化历史对象,例如在DataGridView中 DataGridView dgvChronic = new DataGridView(); dgvChronic.DataSource = webBrowser1.Document.Window.History; 但这不起

我只想显示
WinForms.Webbrowser
的完整历史记录, 我知道如何用手指向前和向后导航

webBrowser1.Document.Window.History.Go/Back/Forward(1)
我只是想知道如何可视化历史对象,例如在DataGridView中

DataGridView dgvChronic = new DataGridView();
dgvChronic.DataSource = webBrowser1.Document.Window.History;
但这不起作用:/

我想做这样的事情(伪代码):

我的解决方案:

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);
    }
    }
private List chronic=new List();
私有无效webBrowser1_已导航(对象发送方,WebBrowserNavigatedEventArgs e)
{
//慢性hier-erstellen
if(tsURL.Text!=webBrowser1.Url.ToString())
{
tsURL.Text=webBrowser1.Url.ToString();
列表网站=新列表();
Add(DateTime.Now.ToString());
添加(tsURL.Text);
慢性病.添加(网站);
}
}
然后将历史形象化:

foreach (List<string> website in chronic)
{
    dgvChronic.Rows.Add(website[0], website[1]);
}
foreach(慢性病列表网站)
{
dgvChronic.Rows.Add(网站[0],网站[1]);
}

我会将trippinos的答案标记为已接受,因为它几乎相同(我没有测试过,但它看起来也会工作)

DataGridView。DataSource
不支持
WebBrowser
History
类型。
您应该将每个导航URL添加到
数据表
,并将此表设置为
DataGridView
的数据源。它似乎不受支持,但有一个非常简单的解决方法,需要几行代码。 看看这条线:


希望这有帮助。

好的,那么我如何从历史记录中获取URL?如果您想在导航/导航或文档完成事件中保存URL,这是一个坏主意,因为他们在一次页面更改中多次触发。
foreach (List<string> website in chronic)
{
    dgvChronic.Rows.Add(website[0], website[1]);
}