2012-09-02 94 views
2

我想添加屬性到我的自定義控件,如上面的示例屬性與描述! 我不知道用上面的GUI來顯示那個。 我想知道使用它的屬性。如何在屬性對話框中添加自定義控件屬性


private bool IsNum = true; 
[PropertyTab("IsNumaric")] 
[Browsable(true)] 
[Description("TextBox only valid for numbers only"), Category("EmSoft")] 
public bool IsNumaricTextBox 
{ 
    set 
    { 
     IsNum = value; 
    } 
} 

protected override void OnKeyPress(KeyPressEventArgs e) 
{ 
    base.OnKeyPress(e); 
    if (IsNum) 
    { 
     doStruf(e); 
    } 
} 

private void doStruf(KeyPressEventArgs e) 
{ 
    if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "\\d+") && !char.IsControl(e.KeyChar)) 
     e.Handled = true; 
} 

我想顯示這個與描述

像這樣的屬性框屬性工具箱

IsNumaric真

+2

能否請您分享更多的信息?什麼類型的GUI(Windows窗體,WPF)?你指的是什麼'上面的GUI'? – MaciekTalaska

+0

Windows窗體應用程序 – Elshan

+0

您是否希望在設計期間該屬性可見(以便您可以在設計器中更改其值)? – MaciekTalaska

回答

1

酒店需要吸氣才能顯示在屬性網格:

private bool isNum = true; 

[PropertyTab("IsNumaric")] 
[Browsable(true)] 
[Description("TextBox only valid for numbers only"), Category("EmSoft")] 
public bool IsNumaricTextBox { 
    get { return isNum; } 
    set { isNum = value; } 
} 
+0

謝謝它在get方法實現之後起作用!!!!但我有一些想念明白...因爲我不想實現get方法...但是它的工作只能在聲明get方法之後 – Elshan

0

這是很容易做到,你只需要裝飾它具有如下示例中的屬性:

[PropertyTab("IsNumaric")] 
[DisplayName("NumericOrNot")] 
[Category("NewCategory")] 
public bool IsNumaricTextBox 
{ 
    set 
    { 
     IsNum = value; 
    } 
} 

並使其工作,您需要使用以下內容:

using System.ComponentModel 

如果不指定Category - 屬性將在Misc類別顯示(請注意,默認的屬性正在被顯示的名字,而不是類別)。在此示例中,該屬性將顯示在NewCategory下,並且該屬性的名稱將爲NumericOrNot

+0

這是我的用戶控制的完整代碼: – Elshan

+0

此屬性應該用於裝飾方法。你能否把你的問題粘貼到你的問題上?我以爲你已經有了一個自定義的控件,你想要實現的唯一一件事就是在設計期間顯示一個屬性。 – MaciekTalaska

+0

謝謝很多Maciek – Elshan