我正在尝试做一个透明的自定义标签类,我正在搜索很多关于此的文章,但我的情况不同,因为我正在尝试使用透明标签进行倒计时,然后当我使用该示例时代码闪烁成功。 我使用间隔设置为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();
}
}
}
答案 0 :(得分:1)
由于RecreateHandle()调用而闪烁。这会重新创建本机Windows窗口,当您看到旧窗口被破坏并创建新窗口时,闪烁是不可避免的。只需删除通话,就没有必要。
并且不要忘记利用built-in support来获得Label控件的透明度。