//创建接口,封装控件继承接口
public interface IGUID{
/// <summary>
/// 唯一标识Guid
/// </summary>
[Description("唯一标识Guid")]
string GUID
{
get;
}
}
或者
//添加System.Design.dll引用
/// <summary>
/// 扩展Control的设计模式行为。
/// </summary>
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
public class UserControlDesigner : System.Windows.Forms.Design.ControlDesigner
{
private string guid = Guid.NewGuid().ToString();
[Description("唯一标识")]
public string GUID
{
get
{
return guid;
}
}
public UserControlDesigner()
{
// guid = Guid.NewGuid().ToString();
}
/// <summary>
/// 重载SelectionRules属性自定义选择规则
/// </summary>
public override SelectionRules SelectionRules
{
get
{
SelectionRules selectionRules = SelectionRules.Moveable | SelectionRules.Visible;//禁止改变大小 | SelectionRules.LeftSizeable | SelectionRules.RightSizeable;
return selectionRules;
}
}
//想到去掉的属性
//private static readonly string[] unbrowsableProperties = { "Dock", "Size" };
/// <summary>
/// 重载PostFilterProperties方法隐藏属性
/// </summary>
protected override void PostFilterProperties(IDictionary properties)
{
//foreach (string prop in unbrowsableProperties)
//{
// properties.Remove(prop);
//}
PropertyDescriptor pd = TypeDescriptor.CreateProperty(
typeof(UserControlDesigner), //****当前类名称
"GUID",
typeof(System.String), //****添加项值类型
new Attribute[] { new DesignOnlyAttribute(true) });
properties.Add("GUID", pd);
}
}
}
使用:添加类标记 [DesignerAttribute(typeof(UserControlDesigner))]