如何检测Control.PreferredSize何时更改?

时间:2010-08-03 20:54:51

标签: winforms controls

我正在使用Control.PreferredSize来确定表单的ScrollableControl.AutoScrollMinSize应该是什么。只要控件的PreferredSize属性发生更改,就需要设置此项,但似乎没有Control.PreferredSizeChanged事件。有没有办法检测此属性何时更改(可能使用Control.WndProc)?如果可以避免,我宁愿避免对房产进行投票。

1 个答案:

答案 0 :(得分:1)

您可以覆盖OnLayout或OnPaint。

    private Size m_CurrentPreferedSize;
    protected override void OnLayout(LayoutEventArgs e)
    {
        base.OnLayout(e);
        Size newSize = PreferredSize;
        if(m_CurrentPreferedSize != newSize)
        {
           m_CurrentPreferedSize  = newSize;
           //Your code here 
        }
    }

每次通话都会计算PreferredSize。