0

.Net にコンテナーがある場合、そのコントロールに追加された子にプロパティを追加することは可能ですか?

TableLayoutPanel はこれを行っているように見えます。たとえば、パネルを追加すると、コントロールにはセル、列、行、colSpan、RowSpan という新しいプロパティがあります。コントロールを別のパネルに移動するか、TableLayoutPanel のすぐ外側に移動すると、プロパティはなくなります。

これはどのように達成されますか?

4

1 に答える 1

2

TableLayoutPanelコントロールは、IExtenderProviderインターフェイスを実装し、上記の名前でProvideProperty属性を追加します。これにより、問い合わせたこの「追加のプロパティ機能」が得られます。

この実装に関する詳細情報を入手するには、元のソースコードを掘り下げることをお勧めします。

(.NET逆アセンブラがない場合は、ここで無料の優れた逆アセンブラを入手できます。)

IExtenderProviderを開始するためのいくつかのソース:

于 2012-10-24T23:42:04.797 に答える