2010-04-12 126 views
1

我想显示静态(共享)在运行时对象在PropertyGrid中,但如果我尝试设置这样的网格的选择对象属性:如何在PropertyGrid中显示静态(共享)对象的属性?

_propertyGrid.SelectedObject = System.Windows.Forms.Application 

我得到一个编译错误:

'Application' is a type and cannot be used as an expression.

有没有办法在PropertyGrid中显示静态(共享)对象或对象的属性?

回答

5

即赋值语句确实没有从面向对象的观点很有道理,因为静态对象确实不是一个对象 - 它只是一个方法和属性集合,没有任何形式的一致性,除了类名。不过,我明白你想要做什么。

你需要给它一个对象实例。

我会建议创建一个包装类(可能是一个单例),将Application对象所需的属性公开出来,并将其用作数据源。

+0

这是一个有趣的OOP问题,我从来没有真正不得不思考之前。除了尝试在网格视图中显示静态对象之外,这个问题也更广泛地应用于将静态对象作为函数参数传递的内容。看起来你不能。无论如何。 – 2010-04-12 14:32:12

+0

@保罗:我更新了我的答案,以便更明确。 – 2010-04-12 14:45:16

相关问题