2011-12-13 4 views
2

Я создал .NET UserControl для создания собственного класса PictureList. Однако, когда я изменяю размер элемента управления элемента управления, содержимое элемента управления исчезает. Событие 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

Я не могу воспроизвести вашу ошибку. Также я не знаю, почему у вас есть MessageBox в OnPaint (надеюсь, только для абстрактных целей). Вы создаете эти элементы управления программно или с помощью дизайнера? –

+0

Я создал его программно. MessageBox предназначен только для объяснения. Проблема в том, что управление отлично рисует. Я использую его в дизайнере, размещаю его в макете и привязываю макет к сторонам формы. Когда я изменяю размер формы, изображение просто исчезает. – Supergrover

+0

Какое содержимое? –

ответ

0

Нужно включить AutoRedraw?

+0

AutoRedraw кажется свойством на InkCollector, который я не использую. Нужно ли мне? – Supergrover

+0

Нет, что-то похожее для элементов управления Winforms, я обновлю свой ответ, когда найду его. (ответил от памяти раньше) –

Смежные вопросы