Динамическое изменение высоты PictureBox - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть RichTextBox. Кроме того, я рисую количество коробок с картинками. Pictureboxes не содержат изображения, но устанавливают черный цвет фона. Первоначально я установил высоту каждого поля рисунка равным высоте richtextbox. Но когда я изменяю размер richtextbox, я хочу также изменить высоту картинных блоков.

Я сделал это, прослушав обработчик события Resize richtextbox, там я получаю текущую высоту richtextbox и соответствующим образом изменяю высоту picturebox. Но проблема в том, что я вижу, что ящики для фотографий становятся больше, но цвет фона последней части установлен не черный, а белый. Я пытаюсь сделать недействительными и обновить оба richtextbox и pictureboxes, но ничего не происходит. Есть идеи ???

Изменить размер фрагмента кода:

void tbx_resize(Object sender, EventArgs e)
{    
    var height = ((RichTextBox)sender).Height;
    foreach(PictureBox pic in ((RichTextBox)sender).Controls)
    {
       pic.Height = height;
       pic.Invalidate();
    }
    ((RichTextBox)sender).Invalidate();
} 

1 Ответ

3 голосов
/ 07 ноября 2011

Я делал такие вещи, как это ..
попробуйте это:

void tbx_resize(Object sender, EventArgs e) 
{     
    int height = ((RichTextBox)sender).Height;
    foreach (Control c in this.Controls)
    {
       if (c is PictureBox)
       {
          c.Height = height;
       }
    } 
} 
...