【发布时间】:2010-12-07 14:51:13
【问题描述】:
【问题讨论】:
-
谢谢 似乎是同样的问题会读这篇文章。
【问题讨论】:
是的...在您的班级中,创建一个私有字段来确定您的属性是否最初已“设置”。然后让您的标准属性获取器和设置器。但是,在设置器中,使用许可证管理器来检测您在哪种模式下运行...设计时与运行时。然后检查。如果在设计时始终允许,或者如果该字段尚未设置。一旦进入,然后将标志设置为已设置。这将是必需的,因为在表单设计器实例化控件期间,必须从 .Designer.cs 代码中至少设置一次,但之后,忽略任何更改它的尝试——通过设置标志。
private Boolean IsCreated = false;
private String myVar1;
public String MyVar1
{
get { return myVar1; }
set {
if (LicenseManager.UsageMode == LicenseUsageMode.Designtime
|| !IsCreated)
{
myVar1 = value;
IsCreated = true;
}
}
现在,您仍然可以允许更改,但您必须通过在您的类中创建的自定义方法来进行更改,因为“IsCreated”标志是私有的,而不是受保护的子继承。您必须清除标志,然后重置为您的属性要保存的新字符串(或任何值)
【讨论】: