在自定义DesignSurface中调整控件周围的边框

时间:2012-04-17 11:10:49

标签: c# designer windows-forms-designer

当我对自定义DesignSurface进行控制时,会绘制一个“调整大小边框”。它是VS Designer中众所周知的标准边框 - 点缀着八个“锚点”来调整控件大小。不幸的是,当我以编程方式更改控件的大小或位置时,此边框本身不会应用此更改。我必须取消选择然后通过鼠标选择此控件来强制重绘。

我的问题是:如何从代码访问此边框并以编程方式强制重绘?

提前致谢!

1 个答案:

答案 0 :(得分:0)

例如:更改了控件的位置

不喜欢这样:

Control control = new Control();
control.Location=new Point(10,10);

试试这个:

Control control = new Control();
PropertyDescriptor propertyDescriptor = TypeDescriptor.GetProperties(control)["Location"];
if (propertyDescriptor != null)
{
  Point point = (Point)propertyDescriptor.GetValue(control);
  point.Offset(5, 5);
  propertyDescriptor.SetValue(control, point);
}

PropertyDescriptor的方法“SetValue”可以触发通知设计者重绘的“ComponentChanged”事件。