我有一个实现IExtenderProvider的组件。一个属性包含的设置应与用户在其项目中使用的组件的每个实例的设置相同。(也可以在每个实例中编辑)
在设计时在用户控件的多个实例之间共享信息的常用方法是什么?手动将其写入app.config不是解决方案,因为我需要此设置的图形用户界面。
提前感谢
Findnix
如果属性只是在设计时需要,那么前面提到的静态属性非常有用,但在我的例子中,在运行时也需要该属性。在这种情况下,每个实例都会将在其设计时设置的值设置为static属性。这意味着该值取决于实例的初始化顺序。
示例:
在设计时:
将组件添加到窗体1并将值设置为"Form1“
将组件添加到窗体2并将值设置为"Form2“
现在,两个实例在设计器中的值都是"Form2“,但在运行时,如果两个窗体都加载了,则该值始终是作为最后一个加载的值。
这是因为设计器不会更改实例的初始化值。
发布于 2012-11-03 02:22:40
要创建对所有实例和每个实例通用的属性,可以执行以下操作:
class MyObject
{
// static members are common to all instances
static string DefaultProperty1 = "Some Default";
private string _Property1;
public string Property1
{
get
{
// If the backing field is NULL, return the default
if (_Property1 == null)
return DefaultProperty1;
// Otherwise, return the per-instance value
return _Property1;
}
set { _Property1 = value; }
}
}如果你希望它是可改变的,DefaultProperty1也可以是一个属性。
https://stackoverflow.com/questions/13198510
复制相似问题