我可以使用简单属性(Integer,String等)创建自定义UserControl,并在属性面板中显示这些属性。我还可以创建一个Custom UserControl,其属性如Size,Rectangle等,属性将显示为Property Panel中的可扩展项(单击'+',Size扩展为Width& Height)。
是否可以使用我自己的自定义结构创建属性?例如属性“消息”扩展为Text,ForeColor,BackColor,Blink等。我尝试创建一个属性,该属性引用一个简单的类或结构,其中包含表示我的自定义结构的属性,但在属性面板中属性显示为灰色且无法展开或修改。
答案 0 :(得分:1)
您需要为自定义类型提供TypeConverter
,以便可以将其转换为字符串,然后使用TypeConverterAttribute
修饰自定义类型。
从ExpandableObjectConverter
。
public class MyTypeConverter : ExpandableObjectConverter
{
}
覆盖CanConvertTo()
,ConvertTo()
,CanConvertFrom()
和ConvertFrom()
,以便将自定义类型转换为字符串(这是属性中显示的值)您可以在展开之前看到的主行上的网格)以及从字符串返回到自身的网格。常见的字符串表示形式是显示以逗号分隔的所有字段值的列表。
使用TypeConverterAttribute
装饰自定义类型。
[TypeConverter(typeof(MyTypeConverter ))]
public struct MyType
{
}
这是让你入门的最低要求。还有更多需要学习的东西。 This MDSN article可能是一个很好的起点。