Winforms owner-drawn 控件和调整大小

Winforms owner-drawn controls and resizing

我正在设计一个名为 ViewPanel 的控件(如下)。本质上它只是一个面板,将 Text 属性 作为标题绘制。为此,我调整 DisplayRectangle 属性 以允许顶部有足够的 space 来绘制一些文本。

我遇到的问题(并且在很多 owner-drawn 操作 DisplayRectangle 的控件中遇到过)是当调整控件大小时,child 控件似乎有点落后

示例:

正如你在这里看到的,我有一个 ViewPanel 控件,它绘制了一个蓝色的标题栏,还要注意 ViewPanel 在每个方向都被填充了 16px!

ViewPanel 控件有一个 child (ListView)

我已经调整了控件的大小 - 注意 ViewPanel 是如何正确绘制它的标题栏的,但是 child 没有相应地重新定位自己。

问题:

什么负责更新 child 控件的位置?我需要覆盖某些东西吗?

已解决(对于任何其他所有者绘图控件):

protected override void WndProc(ref Message m)
{
    const int WM_WINDOWPOSCHANGED = 0x0047;
    base.WndProc(ref m);
    if (m.Msg == WM_WINDOWPOSCHANGED)
    {
        //Make changes to your display rectangle here...
        this.PerformLayout();
    }
}