2017-08-28 36 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 

コードの最後の行に問題があります。別のタブに異なるfaviconを設定するにはどうすればよいですか?どのfaviconがどのタブに属しているかをどのように追跡するのですか?

答えて

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]; 
    } 
関連する問題