如何使 属性 字段显示在 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 无法知道它到底是什么并结束要么抛出错误,要么完全忽略它!

这就是预编译或手动添加默认值的原因。