2011-11-21 32 views
1

我可以在TabControl的OnDrawItem事件中使用e.Graphics.Drawimage繪製關閉按鈕,但是我想在webbrowser控件的DocumentCompleted事件後在該標籤上顯示該網站的圖標,但是我不能在DocumentCompleted事件中使用e.Graphics.Drawimage如何在tabcontrol上繪製網站圖標

有沒有其他的方法來做到這一點。

感謝您的幫助。

回答

1

OnDrawItem是正確的方法。如果以其他方式執行此操作,則在下次需要重新繪製選項卡時(例如,如果切換到其他選項卡或最小化並恢復窗口),圖標將被刪除。在WinForms中,您只能從該控件的繪製事件中繪製一個控件。

您需要做的是,在您的DocumentCompleted事件中,保存圖標(例如在UserControl或Form類的字段中),然後在選項卡控件上調用Invalidate。這將導致您的OnDrawItem事件被解僱。只要該字段已分配,您的OnDrawItem就可以繪製圖標。東西大致是這樣的:

private Image _favicon; 
private void WebBrowser1_DocumentCompleted(...) { 
    _favicon = ...get the icon...; 
    TabControl1.Invalidate(); 
} 
private void TabControl1_OnDrawItem(...) { 
    if (_favicon != null) 
     e.Graphcs.DrawImage(_favicon, ...); 
} 
+0

謝謝你..你真棒。奇蹟般有效 :) –