Custom Property具有奇怪的IDE PropertyGrid行为

时间:2012-12-03 13:11:01

标签: .net vb.net winforms

我正在使用VS .NET 2010终极版。我在我的(自定义)组件上遇到一些属性的奇怪行为,我想知道这是我的问题或IDE问题。我发布了两张图片,第一张是在编辑属性之前,将Dot-> Size->高度从5改为20,第二张是在Enter后更改新值。

This is befor editing my property

And this is after edit the property and hit enter

现在你可以看到“Spacing”属性(不是触摸)被看作加倍:) 该组件在设计时和运行时都是正常的,所以除了这个奇怪的方面外,任何东西都是oukey。当我点击[+]符号时,事物恢复正常,属性显示为oukey并更新。

有什么问题?

PS。我怀疑问题出在我的TypeConverter类的CreateInstance函数中,因为当我评论这些函数时,属性是可以的,但当然,组件在设计时不再更新(直到我点击表单上的其他地方)

以下是功能:

Public Overrides Function GetCreateInstanceSupported(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
  Return True
End Function

Public Overrides Function CreateInstance(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal propertyValues As System.Collections.IDictionary) As Object
  Dim da As New DotAttributes With
                  {
                    .Color = CType(propertyValues("Color"), Color),
                    .Shape = CType(propertyValues("Shape"), DotShapes),
                    .Size = CType(propertyValues("Size"), Size),
                    .Spacing = CType(propertyValues("Spacing"), Size)
                  }
  Return da
End Function

0 个答案:

没有答案