2011-05-23 21 views
3

我正在C#中用几个自定义属性创建一个自定义的Windows窗体控件。其中一个属性是一个简单的结构与几个积分领域:如何让C#设计人员编辑我的结构属性?

public struct Test 
{ 
    public int A, B; 
} 

Test _Test; 

[Category("MyCategory")] 
public Test TestProperty 
{ 
    get { return _Test; } 
    set { _Test = value; } 
} 

我想Visual Studio设计编辑我的结构领域,因为它不会以同样的方式为SizeMargins和其他类似的Windows窗体结构。我是否需要实现基于UITypeEditor类的自定义属性编辑器,还是有一些常见的.Net框架提供的“结构编辑器”?

+5

而非更新标题解决了,你应该添加自己的答案,如果它是最好的一个,将其标记为接受的答案。这将有助于其他未来有同样问题的人,而不仅仅是编辑你的问题。它也将把它从“未答复”的名单中除去,我们中的许多人会去找那些有我们可以提供帮助的问题的人。 – Yaur 2011-05-23 09:28:25

+0

试过。有一条消息“新用户在回答自己的问题之前必须等待8个小时”。 – sharp 2011-05-23 09:56:02

+0

* @ sharp *你不需要回答你的问题,但检查最有用的答案 – Luca 2011-05-23 10:26:02

回答

5

这应该做的伎俩:

[TypeConverter(typeof(ExpandableObjectConverter))] 
public struct Test 
{ 
    public int _A, _B; 
    public int B 
    { 
     get { return _B; } 
     set { _B = value; } 
    } 
    public int A 
    { 
     get { return _A; } 
     set { _A = value; } 
    } 
} 

Test _Test; 

[Category("MyCategory")] 
public Test TestProperty 
{ 
    get { return _Test; } 
    set { _Test = value; } 
} 
+2

不起作用,将[Serializable]应用于结构声明是一种解决方法。 – 2017-09-19 21:10:27

相关问题