如何在更改属性后在设计时刷新winform自定义控件

时间:2010-12-02 15:00:31

标签: c# winforms

假设我创建了一个嵌入轨道栏的自定义控件。我还为自定义控件创建了一个orientation属性。 当我在表单上删除自定义控件时,它将是水平的。然后我将其设置为垂直,轨迹栏应该在设计时刷新为垂直。

怎么做?

2 个答案:

答案 0 :(得分:4)

我认为您应该在更改值后调用Refresh()

public OrientationProperty Direction
{
    get
    {
        return _direction;
    }
    set
    {
        _direction = value;
        if (DesignMode)
        {
            Parent.Refresh(); // Refreshes the client area of the parent control
        }
    }
}
private OrientationProperty _direction;

答案 1 :(得分:0)

这是我解决此问题的方法: 1.每当您设置某物属性时,就在setter中调用Invalidate()。 2.实施相应的属性和刷新方法(例如,重写的OnPaint)后,重新构建!!!然后您将看到在设计时生效的修改 3.在设计过程中,请始终检查是否存在编译错误,因为这可能会使VS停止执行其所有任务。

有了这个,当我将控件放在窗体上并调整其自身的属性时,刷新会立即按预期进行。

PS .:较旧的帖子,但至少也验证了VS2015中的行为:)