C# 如何在“属性”对话框中添加自定义控件属性

C# 如何在“属性”对话框中添加自定义控件属性,c#,C#,我想将属性添加到我的自定义控件中,就像上面带有说明的示例属性一样! 我不知道如何用上面的GUI显示它。 我想知道使用它的属性是什么 private bool IsNum = true; [PropertyTab("IsNumaric")] [Browsable(true)] [Description("TextBox only valid for numbers only"), Category("EmSoft")] public bool IsNumaricTextBox {

我想将属性添加到我的自定义控件中,就像上面带有说明的示例属性一样! 我不知道如何用上面的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 True

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

[PropertyTab("IsNumaric")]
[DisplayName("NumericOrNot")]
[Category("NewCategory")]
public bool IsNumaricTextBox
{
     set
     {
         IsNum = value;
     }
}
要使其正常工作,您需要使用以下工具:

using System.ComponentModel

如果未指定
类别
,则属性将显示在
杂项
类别下(请注意,默认情况下,属性是按名称显示的,而不是按类别显示的)。在本例中,属性将显示在
NewCategory
下,属性名称将为
NumericOrNot

属性需要一个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; }
}

你能分享更多的信息吗?什么类型的GUI(Windows窗体、WPF)?您指的是什么“上面的图形用户界面”?Windows窗体应用程序是否希望此属性在设计时可见(以便您可以在设计器中更改其值)?是的,我希望在设计时更改此属性Maciek如何格式化我的代码段?我是StackOverflow的新手。这个属性应该用于修饰方法。你能把你的问题贴上吗?我以为你已经有了一个自定义控件,你唯一想实现的就是在设计期间显示一个属性。我想提供一些帮助,我无法将代码复制到这里。。。。他们说哎呀!无法提交您的问题,因为:请添加一些上下文来解释代码部分(或检查您是否将所有问题的格式都错误地设置为代码)。您无法在注释中编写代码。编辑您的原始问题。您如何像以前一样格式化我的代码?我现在不能这样做…如果它是用于它的特殊标记?对于代码格式:使用4个空格或前置代码标记(用尖括号括起来)。看看SO编辑器的帮助-它应该指向详细描述如何格式化代码的部分。感谢它在get方法实现后工作!!!!但我有一点想明白。。。因为我不想实现get方法…但它只有在声明get方法之后才能工作