透明标签在调整大小时消失
本文关键字:小时 消失 调整 标签 透明 | 更新日期: 2023-09-27 18:25:22
再次出现调整大小的另一个问题,就像许多其他问题一样,我使用了CreateParams方法来设置透明标签,一切看起来都很好。。。除非表单重新调整大小,否则文本将消失!
有人有什么想法吗?控件在那里,但文本没有显示,就好像我最小化了表单,然后恢复它显示的一样!
public class TransparentLabel : Label
{
public TransparentLabel()
{
this.SetStyle(ControlStyles.Opaque, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
}
protected override CreateParams CreateParams
{
get
{
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20; // Turn on WS_EX_TRANSPARENT
return parms;
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
if (base.BackgroundImage == null)
{
e.Graphics.DrawRectangle(new System.Drawing.Pen(this.BackColor, 1), e.ClipRectangle);
}
else
{
base.OnPaintBackground(e);
}
}
}
当我测试您的代码时,控件似乎被应该在其下的任何控件按Z顺序绘制。您可能需要通过响应右侧绘制消息来重新绘制文本。我在这里找到了一个透明标签的例子,它似乎可以做到这一点。
对此的快速解决方案是使用"链接标签"控件,将其背景设置为透明,并将链接长度设置为0。