【问题标题】:How to draw favicon of a website on tabcontrol如何在 tabcontrol 上绘制网站的图标
【发布时间】:2011-11-21 23:51:20
【问题描述】:

我可以在 TabControl 的 OnDrawItem 事件中使用 e.Graphics.Drawimage 在标签上绘制关闭按钮,但我想在 webbrowser 控件的 DocumentCompleted 事件之后在该标签上显示网站的图标,但我不能使用 @987654323 @ 在DocumentCompleted 事件中。

有没有其他方法可以做到这一点。

感谢您的帮助。

【问题讨论】:

    标签: c# winforms visual-studio-2010 graphics


    【解决方案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, ...);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-24
      • 2012-01-02
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      • 2016-09-15
      • 2021-12-26
      相关资源
      最近更新 更多