0
如果在.Net中有一个容器,是否可以将属性添加到添加到该控件的任何子项中?将属性添加到子控件
TableLayoutPanel似乎这样做,如果添加一个控件,比如一个面板,控件具有新的属性,单元格,列,行,colSpan,RowSpan。如果将控件移动到另一个面板,或者只是在TableLayoutPanel之外,则属性会消失。
这是如何实现的?
如果在.Net中有一个容器,是否可以将属性添加到添加到该控件的任何子项中?将属性添加到子控件
TableLayoutPanel似乎这样做,如果添加一个控件,比如一个面板,控件具有新的属性,单元格,列,行,colSpan,RowSpan。如果将控件移动到另一个面板,或者只是在TableLayoutPanel之外,则属性会消失。
这是如何实现的?
TableLayoutPanel控件实现IExtenderProvider接口,并将ProvideProperty属性添加到上面提到的名称中 - 从而生成此查询的“附加属性功能”。
我会建议您挖掘其原始源代码以获取有关此实现的更多信息。
(如果你没有一个.NET反汇编,你可能会得到一个良好的和免费的here)
一些消息来源上手IExtenderProvider:
I正在用dotPeek调查原始资料,但我不太确定要查找什么。现在我有了方向,谢谢!并感谢您的及时答复。 – Apeiron