c# - PropertyGrid,设计者与运行时的行为有何不同?

标签 c# .net winforms windows-forms-designer typeconverter

我在使用 propertygrid 时遇到了一些问题。即:

当我在 visual studio 设计器中使用 propertygrid 时,行为与在运行时以及调试时不同。

需要注意的几点(这是在设计器中使用表单并编辑自定义文本框,而不是将 propertygrid 嵌入表单并将其附加到同一自定义文本框)

当我在设计器中选择了多个对象并设置了一个属性(自定义类型,带转换器)时,我遇到了空引用异常。当我在运行时使用“SelectedObjects”字段时,我没有得到异常。如果我将调试器附加到设计器,则不会发生异常,并且我的属性设置将正常工作。

我实现了我自己的可扩展对象转换器,用于进行属性排序。当我运行我的应用程序时,我的属性以正确的顺序显示,但在使用 visual studio 设计器时它们仍然以默认顺序显示。

是否有任何资源可以帮助解释为什么会发生这些行为?

谢谢!

最佳答案

您是否引用了当前程序集之外的任何类(或者更甚于解决方案之外的类)?

设计器远不如加载那些外部 dll 的好。在某些情况下,设计人员会知道您是从 ExpandableObjectConverter 派生的,但无法加载您的特定基类,最后,它只会加载通用转换器。尝试将所有基类加载到当前程序集中,看看这是否有所不同。

关于c# - PropertyGrid,设计者与运行时的行为有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674324/

相关文章:

c# - 使用 stub 和模拟的正确方法是什么?

.net - 如何将 2 个参数传递给 Nant 脚本?

.net - Magick .NET MagickDelegateErrorException 尝试读取上传的 .eps 文件时发生

c# - 如何以不同的形式将文本框数据传递到datagridview

c# - 如何实现等级结构

c# - Automapper:从单个源值填充多个目标值

c# - 使用 MySQL 数据库创建 ADO.Net 实体数据模型?

c# - 我想让面板有一个粗边框。我能以某种方式设置它吗?

c# - TreeView 多次触发 BeforeSelect 事件

c# - Awesomium C# WebControl,更改代理设置