我有一个带有公共属性的 UserControl,使用以下属性:
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
我尝试删除所有者表单,在 Visual Studio 2010 中重新创建一个新表单,然后将此 UserControl 添加到该表单中。它不断在 Designer 文件中添加如下行:
this.vMyUserControl.MyProperty = ((MyNamespace.MyClass)(resources.GetObject("vMyUserControl.MyProperty")));
这会使我的应用程序崩溃,因为该属性不是设计为通过序列化创建的。
在设计时将属性设置为只读将阻止其序列化到 resx 文件中。奇怪的是,如果 MyType 恰好是一个集合,则设计者会忽略只读,并且您仍然可以在设计时设置该属性,即使该属性未写入 resx 中,因此最好也使该属性不可浏览。
[ReadOnly(true)]
[Browsable(false)]
public MyType MyProperty
{
get { return _MyProperty; }
set { _MyProperty = value; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)