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