如果您在表单中添加一个TableLayoutPanel,并向其中的一个单元格添加控件,则添加的控件在属性窗口中具有额外的属性(例如:行、行跨度、列、列跨度、单元格等)。
我的问题是,如果您创建自己的自定义控件/组件,是否有一种方法可以向成为自定义控件子级的任何现有控件添加属性,就像TableLayoutPanel的行为一样?
我的问题是,如果您创建自己的自定义控件/组件,是否有一种方法可以向成为自定义控件子级的任何现有控件添加属性,就像TableLayoutPanel的行为一样?
我猜你正在寻找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 {