问题
当我将控件放在自定义DesignSurface上时,当我以编程方式更改控件的大小或位置时,调整边框边框不会更改本身。我必须取消选中,然后通过鼠标选择此控件强制重画。这导致实际窗体大小大于当前调整边框的位置。
解决方式
使用PropertyDescriptor的方法 “SetValue” 能发射“ComponentChanged “通知设计师重绘的事件。
如
var frmView = (Form) host.RootComponent;
PropertyDescriptor propertyDescriptor = TypeDescriptor.GetProperties(frmView)["Width"];
if (propertyDescriptor != null)
{
propertyDescriptor.SetValue(frmView, frmView.Width);
}