2011-12-13 9 views
2

私は独自の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); 
    } 
+0

エラーを再現できません。また、OnPaintにMessageBoxを持っている理由についてもわかりません(うまくいけば抽象的な目的のために)。これらのコントロールをプログラムで作成しているのですか、デザイナーが作成していますか? –

+0

私はそれをプログラムで作成しました。 MessageBoxは説明のためのものです。問題は、コントロールが完全に描画されることです。私はデザイナーでそれを使用してレイアウトに配置し、フォームの側面にレイアウトを固定します。フォームのサイズを変更すると、イメージが消えます。 – Supergrover

+0

内容は? –

答えて

0

AutoRedrawを有効にする必要がありますか?

+0

AutoRedrawは、私が使用しないInkCollectorのプロパティのようです。する必要がありますか? – Supergrover

+0

いいえ、Winformsコントロールに類似したものがあります。見つけたら、私の答えを更新します。 (前にメモリから返信) –