c# – Designer不为子控件的属性生成代码.为什么?

前端之家收集整理的这篇文章主要介绍了c# – Designer不为子控件的属性生成代码.为什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了SubCtrl继承UserControl.它没有代码.
然后我创建了Ctrl,它也继承了UserControl.它有一个SubCtrl,它唯一的代码意味着公开它,所以它出现在Ctrl的属性列表中:
public subctrl.SubCtrl SUBCTRL
{
    get { return this.subCtrl1; }
}
@H_404_5@然后我创建了一个简单的Form项目,其中只有一个Ctrl而没有代码.
如我所愿,SUBCTRL出现在Ctrl的属性列表中,所以我可以改变一些事情.我更改了背景颜色(例如,更改为红色),并且设计器中的子控件变为红色.

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

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

@H_404_5@子控制有什么问题?

解决方法

将[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]添加属性中.

猜你在找的C#相关文章