2011-05-23 49 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

相關問題