DesignSurface中代码控制控件大小,调整边框未更新的问题

问题

当我将控件放在自定义DesignSurface上时,当我以编程方式更改控件的大小或位置时,调整边框边框不会更改本身。我必须取消选中,然后通过鼠标选择此控件强制重画。这导致实际窗体大小大于当前调整边框的位置。

解决方式

使用PropertyDescriptor的方法 “SetValue” 能发射“ComponentChanged “通知设计师重绘的事件。

           var frmView = (Form) host.RootComponent;
            PropertyDescriptor propertyDescriptor = TypeDescriptor.GetProperties(frmView)["Width"];
            if (propertyDescriptor != null)
            {
                propertyDescriptor.SetValue(frmView, frmView.Width);
            }

posted on 2021-07-15 01:24  挖穿地球😁  阅读(83)  评论(0编辑  收藏  举报