C# 如何在tabcontrol上绘制网站图标
我可以在TabControl的OnDrawItem事件中使用C# 如何在tabcontrol上绘制网站图标,c#,winforms,visual-studio-2010,graphics,C#,Winforms,Visual Studio 2010,Graphics,我可以在TabControl的OnDrawItem事件中使用e.Graphics.Drawimage在选项卡上绘制关闭按钮,但我想在webbrowser控件的DocumentCompleted事件之后在该选项卡上显示网站的图标,但我无法在DocumentCompleted事件中使用e.Graphics.Drawimage 有没有其他方法可以做到这一点 谢谢您的帮助。OnDrawItem是正确的方法。如果您以其他方式执行此操作,则下次需要重新绘制选项卡时,您的图标将被删除(例如,如果切换到其他选项
e.Graphics.Drawimage
在选项卡上绘制关闭按钮,但我想在webbrowser控件的DocumentCompleted
事件之后在该选项卡上显示网站的图标,但我无法在DocumentCompleted
事件中使用e.Graphics.Drawimage
有没有其他方法可以做到这一点
谢谢您的帮助。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, ...);
}
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, ...);
}