0

如果您在 .Net 中有一个容器,是否可以向添加到该控件的任何子项添加属性?

TableLayoutPanel 似乎可以做到这一点,如果你添加一个控件,比如一个面板,该控件有新的属性,单元格、列、行、colSpan、RowSpan。如果将控件移动到另一个面板,或者只是在 TableLayoutPanel 之外,属性就会消失。

这是如何实现的?

4

1 回答 1

2

TableLayoutPanel控件实现了IExtenderProvider接口,并添加了您上面提到的名称的ProvideProperty属性 - 导致您查询的“附加属性功能”。

我建议您挖掘其原始源代码以获取有关此实现的更多信息。

(如果您没有 .NET 反汇编程序,您可能会在此处获得一个不错的免费反汇编程序。)

一些开始使用 IExtenderProvider 的资源:

于 2012-10-24T23:42:04.797 回答