如何使 属性 字段显示在 VS 属性 网格中,而不是自定义 属性 网格中?
How to make a property field shows up in the VS property grid, not custom property grid?
我制作了一个派生自 Panel
的自定义控件,其中包含一些属性,比如
public int Amount {get; set;}
public string Name {get; set;}
如何让它出现在 Visual Studio 的 属性 网格中,而不是我拖入的 PropertyGrid
控件?
我在网上能找到的所有内容都在谈论如何向 PropertyGrid
“控件”添加属性,这不是我想要的。
有人可以教我怎么做吗?
非常感谢!
根据@Jimi 的说法,自定义控件在它们的属性显示在 属性 网格之前需要进行“预编译”,因此首先删除所有自定义控件,重建项目,然后将自定义控件拖入会让一切都很好地展现出来。
但我在尝试@Jimi的方法时也找到了另一种解决方案,即:
自定义控件新增属性后,在设计器页面手动添加默认值,如Form1.Designer.cs
,eg.
CustomControl.Number = 0;
然后它将显示在 属性 网格中。
我猜 VS“DID”试图在 属性 网格中显示它,但由于 属性 尚未实例化,VS 无法知道它到底是什么并结束要么抛出错误,要么完全忽略它!
这就是预编译或手动添加默认值的原因。
我制作了一个派生自 Panel
的自定义控件,其中包含一些属性,比如
public int Amount {get; set;}
public string Name {get; set;}
如何让它出现在 Visual Studio 的 属性 网格中,而不是我拖入的 PropertyGrid
控件?
我在网上能找到的所有内容都在谈论如何向 PropertyGrid
“控件”添加属性,这不是我想要的。
有人可以教我怎么做吗?
非常感谢!
根据@Jimi 的说法,自定义控件在它们的属性显示在 属性 网格之前需要进行“预编译”,因此首先删除所有自定义控件,重建项目,然后将自定义控件拖入会让一切都很好地展现出来。
但我在尝试@Jimi的方法时也找到了另一种解决方案,即:
自定义控件新增属性后,在设计器页面手动添加默认值,如Form1.Designer.cs
,eg.
CustomControl.Number = 0;
然后它将显示在 属性 网格中。
我猜 VS“DID”试图在 属性 网格中显示它,但由于 属性 尚未实例化,VS 无法知道它到底是什么并结束要么抛出错误,要么完全忽略它!
这就是预编译或手动添加默认值的原因。