2012-10-24 72 views
0

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

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

这是如何实现的?

回答

2

TableLayoutPanel控件实现IExtenderProvider接口,并将ProvideProperty属性添加到上面提到的名称中 - 从而生成此查询的“附加属性功能”。

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

(如果你没有一个.NET反汇编,你可能会得到一个良好的和免费的here

一些消息来源上手IExtenderProvider:

+0

I正在用dotPeek调查原始资料,但我不太确定要查找什么。现在我有了方向,谢谢!并感谢您的及时答复。 – Apeiron