Designer不会为子控件的属性生成代码。 为什么?

我创建了SubCtrlinheritanceUserControl。 它没有代码。 然后我创建了Ctrl,它也inheritance了UserControl。 它有一个SubCtrl,它唯一的代码意味着公开它,所以它出现在Ctrl的属性列表中:

public subctrl.SubCtrl SUBCTRL { get { return this.subCtrl1; } } 

然后我创建了一个简单的Form项目,其中只有一个Ctrl而没有代码。 如我所愿,SUBCTRL出现在Ctrl的属性列表中,所以我可以改变一些事情。 我更改了背景颜色(例如,更改为红色),并且设计器中的子控件变为红色。

但神奇的是,当我运行该项目时,它又回到了标准灰色。 似乎在Form1.Designer.cs中没有生成代码来将SUBCTRL的背面颜色更改为红色。 如果我手工编写,它可以工作,但这不是我想要的。 显然,这应该是自动的。

另一方面,Ctrl表现正常。 代码生成,一切都很愉快。

子控制有什么问题?

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]添加到属性。