C# 如何在PropertyGrid中显示静态(共享)对象的属性?

C# 如何在PropertyGrid中显示静态(共享)对象的属性?,c#,vb.net,winforms,static,propertygrid,C#,Vb.net,Winforms,Static,Propertygrid,我希望在运行时在PropertyGrid中显示静态共享对象,但如果我尝试如下设置网格的selected object属性: _propertyGrid.SelectedObject = System.Windows.Forms.Application 我得到一个编译错误: “应用程序”是一种类型,不能为空 用作表达 有没有办法在PropertyGrid中显示静态共享对象或对象的属性?从OO的角度来看,赋值语句真的没有意义,因为静态对象实际上不是对象——它只是方法和属性的集合,除了类名之外没有任

我希望在运行时在PropertyGrid中显示静态共享对象,但如果我尝试如下设置网格的selected object属性:

_propertyGrid.SelectedObject = System.Windows.Forms.Application
我得到一个编译错误:

“应用程序”是一种类型,不能为空 用作表达


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

从OO的角度来看,赋值语句真的没有意义,因为静态对象实际上不是对象——它只是方法和属性的集合,除了类名之外没有任何一致性。不过,我知道你想做什么

你需要给它一个对象实例


我建议创建一个包装类,可能是一个单独的类,公开应用程序对象所需的属性,并将其用作数据源。

从OO的角度来看,这个赋值语句真的没有意义,因为静态对象实际上不是一个对象,它只是一个方法和属性的集合除了类名,没有任何连贯性。不过,我知道你想做什么

你需要给它一个对象实例


我建议创建一个包装类,可能是一个单例,它公开应用程序对象所需的属性,并将其用作数据源。

这是一个有趣的OOP问题,我以前从未真正考虑过。除了试图在网格视图中显示静态对象之外,这个问题还更广泛地应用于诸如将静态对象作为函数参数传递之类的问题。看来你不能。这是一个有趣的OOP问题,我以前从来没有想过这个问题。除了试图在网格视图中显示静态对象之外,这个问题还更广泛地应用于诸如将静态对象作为函数参数传递之类的问题。看来你不能。不管怎么说,在.NET中没有。