如何让C#设计器编辑我的struct属性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让C#设计器编辑我的struct属性?相关的知识,希望对你有一定的参考价值。

我在C#中使用多个自定义属性创建自定义Windows窗体控件。其中一个属性是一个带有几个整数字段的简单结构:

public struct Test
{
    public int A, B;
}

Test _Test;

[Category("MyCategory")]
public Test TestProperty
{
    get { return _Test; }
    set { _Test = value; }
}

我希望Visual Studio设计器以与SizeMargins和其他类似Windows窗体结构相同的方式编辑结构的字段。我是否需要基于UITypeEditor类实现自定义属性编辑器,或者.Net框架是否提供了一些常见的“结构编辑器”?

答案

这应该做的伎俩:

[TypeConverter(typeof(ExpandableObjectConverter))]
public struct Test
{
    public int _A, _B;
    public int B
    {
        get { return _B; }
        set { _B = value; }
    }
    public int A
    {
        get { return _A; }
        set { _A = value; }
    }
}

Test _Test;

[Category("MyCategory")]
public Test TestProperty
{
    get { return _Test; }
    set { _Test = value; }
}
另一答案

您需要创建自己的设计师。 http://msdn.microsoft.com/en-us/magazine/cc164048.aspx

以上是关于如何让C#设计器编辑我的struct属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 WinForm 设计器完全忽略自定义控件上的属性?

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——CSS选择器

为啥我必须切换纹理单元才能让我的片段着色器识别要使用的纹理?

如何让我的电脑显示自己设计的LOGO?

如何动态添加struct属性以避免冗余代码? [关闭]