透明标签倒计时闪烁

本文关键字:闪烁 倒计时 标签 透明 | 更新日期: 2023-09-27 18:30:38

我正在尝试做一个具有透明度的自定义标签类,我搜索了很多关于这个的文章,但我的情况不同,因为我正在尝试用透明标签进行倒计时,然后当我使用下面的示例代码时成功闪烁。我使用间隔设置为 100 的计时器,然后更改文本自定义标签。我不知道刷新时我该怎么做才能获得更好的性能,知道吗?

class CustomLabel : Label
{
    public CustomLabel()
    {
        this.SetStyle(ControlStyles.Opaque, true);
        this.SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
    }
    protected override System.Windows.Forms.CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x20;
            return cp;
        }
    }
    public override string Text
    {
        get
        {
            return base.Text;
        }
        set
        {
            base.Text = value;
            RecreateHandle();
        }
    }
}

透明标签倒计时闪烁

它因为 RecreateHandle() 调用而闪烁。 这将重新创建本机Windows窗口,当您看到旧窗口被破坏并创建新窗口时,闪烁是不可避免的。 只需删除呼叫,就没有必要。

并且不要忘记利用 Label 控件中对透明度的内置支持。