私の WinForm アプリケーションでは、いくつかの画像を重ねる必要があります。ただし、画像を配置する透明なコントロールを取得するのに問題があります。いくつかの調査を行い、次のクラスを思いつきました:
public class TransparentPicture : PictureBox
{
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x20;
return cp;
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
// do nothing
}
protected override void OnMove(EventArgs e)
{
RecreateHandle();
}
}
これは、Visual Studio を閉じてソリューションを再度開くまではうまくいくようです。その後、私のコントロールはすべてデザイナーで消えます。プログラムを実行すると表示されますが、アプリケーションの設計を続行できるデザイナーでも表示する必要があります。
これらのコントロールは常にプログラムを数秒間フリーズさせているため、これだけで十分ではないことはわかっています。
だから私の質問は..透明なコントロールのコードをどこで見つけることができるか、または私が一緒に投げたものを修正する方法を誰かが知っていますか?