如何在tabcontrol上绘制网站图标
本文关键字:绘制 网站 图标 tabcontrol | 更新日期: 2023-09-27 18:15:17
我能够在TabControl的OnDrawItem事件中使用e.Graphics.Drawimage
在选项卡上绘制关闭按钮,但我想在浏览器控制的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, ...);
}