Properties 无法重置cf 3.5中自定义控件的属性值

Properties 无法重置cf 3.5中自定义控件的属性值,properties,compact-framework,custom-controls,Properties,Compact Framework,Custom Controls,如果术语不正确,我深表歉意-不确定是将其称为继承控件、自定义控件还是用户控件。无论如何,请记住这是一个紧凑的框架3.5/智能设备开发问题。我有一个从按钮继承的控件。基本上,它绘制一个渐变并圆角。我已将6个自定义属性添加到此控件。我注意到,当我在设计器的属性窗口中设置其中一个属性的值时,我永远无法“重置”该值(即鼠标右键单击->重置)。问题是其中一个属性是图像,现在清除该图像的唯一方法是从表单中删除按钮并重新创建它。我尝试在DesignTimeAttributes.xmta文件中为所有属性设置默认

如果术语不正确,我深表歉意-不确定是将其称为继承控件、自定义控件还是用户控件。无论如何,请记住这是一个紧凑的框架3.5/智能设备开发问题。我有一个从按钮继承的控件。基本上,它绘制一个渐变并圆角。我已将6个自定义属性添加到此控件。我注意到,当我在设计器的属性窗口中设置其中一个属性的值时,我永远无法“重置”该值(即鼠标右键单击->重置)。问题是其中一个属性是图像,现在清除该图像的唯一方法是从表单中删除按钮并重新创建它。我尝试在DesignTimeAttributes.xmta文件中为所有属性设置默认值,但似乎没有帮助。“重置”仍处于禁用状态。感谢您的帮助。类的Image属性中的代码如下所示:

Private _Image As Bitmap = Nothing
Public Property Image() As Bitmap
    Get
        Return _Image
    End Get
    Set(ByVal value As Bitmap)
        _Image = value
        Invalidate()
    End Set
End Property
试试这个:

public void ResetImage()
{
    if (Image != null)
    {
      Image.Dispose();
      Image = null;
    }
}
始终可以为任何属性创建重置方法:

public void Reset[PropertyName]()
{
  // Reset your property
}

注意:如果在Xmta中设置默认值,则设计器不会调用重置方法。

谢谢!很难相信我在搜索中没有遇到这个。但是在看到你的帖子后,我发现这一点,这应该会对以后研究这个问题的人有所帮助: