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 True

4

2 に答える 2

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; }
}
于 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 に答える