TextBox中的子属性

时间:2018-10-21 02:41:42

标签: c#

大家好,我是从C#(旧的Delphi开发人员)开始的,我在新TextBox上增加一些代码有些困难,这是我想要做的一个简单示例

文本框的组件TextBoxX

public class TextBoxX : TextBox
{
    public TextBoxX()
    {
    }
    public X XX { get; set; }
}

第二类,只有两个要在组件上显示的int字段

public class X
{
    public int XXX { get; set; }
    public int YYY { get; set; } 
}

我正在寻找类似红色框上的结果

I am looking for a result like that on the red box

我使用“ X:组件”进行了一些测试,但它们附带了一些我不需要的额外字段。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您需要用XXX装饰TypeConverter类:

[TypeConverter(typeof(ExpandableObjectConverter))]
public class XXX
{
    public int YYY { get; set; }
    public int ZZZ { get; set; }


    public override string ToString()
    {
        return "X1"; //Or whatever you want shown when the property is collapsed
    }
}

请参阅Microsoft文档上的ExpandableObjectConverter

答案 1 :(得分:0)

我使用“ new X(this)”解决了您需要的主类问题

public class TextBoxX : TextBox
{
    private X _valor;

    public X Field
    {
        get
        {
            if (_valor == null)
            {
                _valor = new X();
            }

            return _valor;
        }
    }
}

和孩子们

[TypeConverter(typeof(ExpandableObjectConverter))]
public class X
{
    public int XXX { get; set; }
    public int YYY { get; set; }

    public override string ToString()
    {
        return "X1"; //Or whatever you want shown when the property is collapsed
    }
}

感谢我的帮助