您可以将自定义属性添加到自定义控件的子控件吗?

时间:2013-11-27 16:10:25

标签: vb.net winforms visual-studio-2012

如果将TableLayoutPanel添加到表单,然后将控件添加到其单元格之一,则添加的控件在属性窗口中具有额外属性(例如:Row,RowSpan,Column,ColumnSpan,Cell等)。

我的问题是,如果您创建自己的自定义控件/组件,是否有办法将属性添加到任何现有控件,该控件将成为自定义控件的子控件,如TableLayoutPanel的行为?

1 个答案:

答案 0 :(得分:0)

我猜您正在寻找ProvideProperty属性

http://msdn.microsoft.com/en-us/library/d6c1xa43.aspx

在下面的代码中,您将看到它在TableLayoutPanel中的使用方法

[ProvideProperty("ColumnSpan", typeof(Control))]
[ProvideProperty("RowSpan", typeof(Control))]
[ProvideProperty("Row", typeof(Control))] 
[ProvideProperty("Column", typeof(Control))]
[ProvideProperty("CellPosition", typeof(Control))] 
[DefaultProperty("ColumnCount")] 
[DesignerSerializer("System.Windows.Forms.Design.TableLayoutPanelCodeDomSerializer, " + AssemblyRef.SystemDesign, "System.ComponentModel.Design.Serialization.CodeDomSerializer, " + AssemblyRef.SystemDesign)]
[Docking(DockingBehavior.Never)] 
[Designer("System.Windows.Forms.Design.TableLayoutPanelDesigner, " + AssemblyRef.SystemDesign)]
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDispatch)]
[SRDescription(SR.DescriptionTableLayoutPanel)] 
public class TableLayoutPanel : Panel, IExtenderProvider {