我使用Control.PreferredSize是为了确定表单的ScrollableControl.AutoScrollMinSize应该是什么。每当控件的PreferredSize属性发生更改,但似乎没有Control.PreferredSizeChanged事件时,就需要设置该属性。有没有一种方法可以检测到这个属性何时发生变化(可能使用Control.WndProc)?我宁愿避免轮询属性,如果可以避免的话。
发布于 2010-08-20 03:36:34
您可以覆盖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。
https://stackoverflow.com/questions/3400696
复制相似问题