我在使用 propertygrid 时遇到了一些问题。即:
当我在 visual studio 设计器中使用 propertygrid 时,行为与在运行时以及调试时不同。
需要注意的几点(这是在设计器中使用表单并编辑自定义文本框,而不是将 propertygrid 嵌入表单并将其附加到同一自定义文本框)
当我在设计器中选择了多个对象并设置了一个属性(自定义类型,带转换器)时,我遇到了空引用异常。当我在运行时使用“SelectedObjects”字段时,我没有得到异常。如果我将调试器附加到设计器,则不会发生异常,并且我的属性设置将正常工作。
我实现了我自己的可扩展对象转换器,用于进行属性排序。当我运行我的应用程序时,我的属性以正确的顺序显示,但在使用 visual studio 设计器时它们仍然以默认顺序显示。
是否有任何资源可以帮助解释为什么会发生这些行为?
谢谢!
最佳答案
您是否引用了当前程序集之外的任何类(或者更甚于解决方案之外的类)?
设计器远不如加载那些外部 dll 的好。在某些情况下,设计人员会知道您是从 ExpandableObjectConverter 派生的,但无法加载您的特定基类,最后,它只会加载通用转换器。尝试将所有基类加载到当前程序集中,看看这是否有所不同。
关于c# - PropertyGrid,设计者与运行时的行为有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674324/