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 真

4

2 回答 2

1

该属性需要一个 Getter 才能显示在属性网格中:

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; }
}
于 2012-09-02T12:54:23.680 回答
0

这很容易实现,您只需使用下面示例中的属性来装饰它:

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

并使其工作,您需要使用以下方法:

using System.ComponentModel

如果您不指定Category- 属性将显示在Misc类别下(请注意,默认情况下,属性按名称显示,而不是按类别显示)。在此示例中,属性将显示在下方NewCategory,并且属性的名称将是NumericOrNot

于 2012-09-02T08:51:18.107 回答