动态更改PictureBox高度

时间:2011-11-07 15:38:04

标签: c# .net winforms event-handling picturebox

我有一个RichTextBox。最重要的是,我绘制了多个图片框。 Pictureboxes不包含任何图像,但将背景颜色设置为黑色。最初,我将每个图片框的高度设置为与richtextbox的高度相同。但是当我调整richtextbox的大小时,我也希望改变图片框的高度。

我通过监听richtextbox的Resize事件处理程序来完成此操作,在那里我得到了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 个答案:

答案 0 :(得分:3)

我做过这样的事情。
试试这个:

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;
       }
    } 
}