C# 设计时属性字符串数组对象为属性返回null,但这是不允许的

C# 设计时属性字符串数组对象为属性返回null,但这是不允许的,c#,properties,design-time,C#,Properties,Design Time,我的自定义控件继承自DataGridView。在此自定义控件中,我尝试在上创建一个属性,该属性允许指定字符串列表: [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public string[] MyProperty{get; set;} 我发现每当我对承载一个或多个此控件的窗体进行更改时,都会出现一个错误: 对象“column name”为属性“MyProperty”返回null,但这是不允

我的自定义控件继承自DataGridView。在此自定义控件中,我尝试在上创建一个属性,该属性允许指定字符串列表:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public string[] MyProperty{get; set;}
我发现每当我对承载一个或多个此控件的窗体进行更改时,都会出现一个错误:

对象“column name”为属性“MyProperty”返回null,但这是不允许的

我现在通过在构造函数中放入以下代码来处理此问题:

if(MyProperty == null)
{
    MyProperty = new string[]{};
}
这似乎解决了问题。有更好的办法吗


干杯

你能提供一个默认值吗?另外:你知道MyProperty与对象“column name”的连接是什么吗?Hi TaW,我尝试过提供一个默认值,我不确定你的第二个问题是什么。不过我已经更新了这个问题。DefaultValue属性没有设置默认值。设计器使用它来确定该值是否应保存在设计器文件中。如果某个属性值与DefaultValue不匹配,则该属性将在网格中变为粗体。啊,感谢您的澄清。当控件第一次放置在窗体上时,如何提供默认值?