私は独自のPictureListクラスを作るために.NET UserControlを派生しました。 ただし、コントロールの親のサイズを変更すると、コントロールの内容が消えます。 Resizeイベントは発行されません。私はその質問に関係のないコードを省いた。.NETカスタムUserControlの内容は、親のサイズが変更されたときに消えています
public ImageList(int width, int height)
{
ClientSize = new Size(width, height);
ResizeRedraw = true;
}
// Ensure background transparency will be handled corretly.
protected override CreateParams CreateParams
{
get {
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x20; // WS_EX_TRANSPARENT
return cp;
}
}
protected override void OnPaint(PaintEventArgs e)
{
MessageBox.Show("This messagebox is only shown upon the first drawing, but not after the magically disappearing of the contents");
img = /*the image to draw*/
rect = /*the size of the image*/
e.Graphics.DrawImage(img, rect);
}
エラーを再現できません。また、OnPaintにMessageBoxを持っている理由についてもわかりません(うまくいけば抽象的な目的のために)。これらのコントロールをプログラムで作成しているのですか、デザイナーが作成していますか? –
私はそれをプログラムで作成しました。 MessageBoxは説明のためのものです。問題は、コントロールが完全に描画されることです。私はデザイナーでそれを使用してレイアウトに配置し、フォームの側面にレイアウトを固定します。フォームのサイズを変更すると、イメージが消えます。 – Supergrover
内容は? –