サイズ変更に関するもう1つの問題は、透明ラベルを設定する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);
}
}
}
これへのリンクの長さを設定:// stackoverflowの。 com/q/9377337/719186)。あなたのフォームは、おそらくリークしているリソースです。上記のサンプルコードは、問題を再現しません。 – LarsTech
@LarsTech私はちょっと前にそれを見つけましたが、リソースが漏れているかどうかわかりません。 GDIオブジェクトが常に85にとどまっているという申し訳ありませんが、私はどこかからメモリを漏らしています – Neo
メモリリークは解決されたレポートビューアであるとわかりました。なぜラベルが消えるのかまだわかりません:( – Neo