Просто используйте наследование. Вы должны будете использовать свой собственный ярлык вместо системного.
public class MyLabel:Label
{
public MyLabel():base()
{
base.AutoSize = false;
}
}
Вы можете поместить это непосредственно в свой код и изменить код, как показано ниже. Или вы можете поместить этот класс в свою собственную библиотеку, которую затем сможете загрузить в панель инструментов и использовать как любой другой компонент.
Для того, чтобы это работало из панели инструментов, кажется, что вам нужно переопределить InitLayout, как показано ниже, и добавить атрибут к свойству AutoSize, чтобы он не сериализовался в конструкторе:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[DefaultValue(false)]
public override bool AutoSize
{
get
{
return base.AutoSize;
}
set
{
base.AutoSize = value;
}
}
protected override void InitLayout()
{
base.InitLayout();
base.AutoSize = false;
}
Если вы не используете панель инструментов, то после того, как вы поместите свою обычную метку на форму, вам нужно перейти в [Form].Designer.cs
и найти и изменить свои метки:
this.label1 = new MyLabel();// new System.Windows.Forms.Label();
//this.label1.AutoSize = true;
Вы должны удалить предустановленное свойство AutoSize, потому что, когда вы отбрасываете метку, она устанавливает его в конструкторе, и даже если вы изменяете экземпляр метки, чтобы он был вашим типом, ручной набор AutoSize переопределяет ваше значение по умолчанию.