2017-08-28 94 views
0

我正在c#中创建一个浏览器。我想根据浏览器地址在每个标签页中添加favicon。我有以下代码返回当前地址的图标。如何更改标签页在c#浏览器中更改时的favicon?

WebClient wc = new WebClient(); 
MemoryStream memorystream = new MemoryStream(wc.DownloadData("http://" + new Uri(getCurrentBrowser().Address.ToString()).Host + "/favicon.ico")); 
Icon icon = new Icon(memorystream); 
imageList.Images.Add(icon.ToBitmap()); 
tabControl.SelectedTab.ImageIndex = 0; // sets favicon in current tab 

我的问题与最后一行代码。如何为不同的标签设置不同的图标?如何跟踪哪个图标属于哪个标签?

回答

0

嗯,它花了我一段时间。但我知道了。对于任何面临同样问题的人,这里是解决方案。

public void favicon() 
{ 
     WebClient wc = new WebClient(); 
     MemoryStream memorystream = new MemoryStream(wc.DownloadData("http://" + new Uri(getCurrentBrowser().Address.ToString()).Host + "/favicon.ico")); 
     Icon icon = new Icon(memorystream); 
     string i = Convert.ToString(myimg.Images.Count); 
     myimg.Images.Add(i, icon.ToBitmap()); 
     tabControl.ImageList = myimg; 
     tabControl.SelectedTab.ImageIndex = myimg.Images.Count - 1; 
} 

在浏览器标题更改方法中调用它。和getCurrentBrowser()返回当前浏览器。这里是代码:

// get current browser 
    public ChromiumWebBrowser getCurrentBrowser() 
    { 
     return (ChromiumWebBrowser)tabControl.SelectedTab.Controls[0]; 
    }