Laden...

Wie kann ich den BorderStyle in UserControl zurücksetzen

Erstellt von braesident vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.331 Views
B
braesident Themenstarter:in
15 Beiträge seit 2017
vor 6 Jahren
Wie kann ich den BorderStyle in UserControl zurücksetzen

Hi Leute,

Ich habe ein Control erstellt bei welchem als BorderStyle FixedSingle gesetzt ist.
Zieh ich nun das Control aus der Toolbox in eine Form und setze den BorderStyle auf None hat dies keine Auswirkung.
Ist ja auch logisch, da das None nicht in die InitializeComponent der Form geschrieben wird.

Ist es irgendwie möglich das dies doch passiert?

1.040 Beiträge seit 2007
vor 6 Jahren

Fühlt sich irgendwie wie ein Bug an.

Andere Eigenschaften (z.B. Background) kann man ja auch problemlos nochmal setzen und er übernimmt es, nur bei der Border scheint das nicht zu klappen. 🤔

EDIT sagt noch: BorderStyle.Fixed3D geht - BorderStyle.None aber nicht. 🤔

B
braesident Themenstarter:in
15 Beiträge seit 2017
vor 6 Jahren

Ja ich denke das es daran liegt, das BorderStyle.None das Default Value zu sein scheint - Zumindest für den Designer - Denn auf MSDN steht zum UserControl.BorderStyle das es Fixed3D ist 🤔

D
985 Beiträge seit 2014
vor 6 Jahren

So


public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
    }

    [DefaultValue(BorderStyle.FixedSingle)]
    public new BorderStyle BorderStyle
    {
        get => base.BorderStyle;
        set => base.BorderStyle = value;
    }
}

Damit das auch wirkt: Solution entladen, Solution laden und schon geht es

B
braesident Themenstarter:in
15 Beiträge seit 2017
vor 6 Jahren

Vielen Dank Sir Rufo

1.040 Beiträge seit 2007
vor 6 Jahren

Trotzdem komisch, dass das normale Setzen nicht ausreicht.

D
985 Beiträge seit 2014
vor 6 Jahren

Was ist denn daran komisch?

Wenn der Designer einen Eigenschaftswert bekommt, der gleich dem Default-Wert der Eigenschaft ist, dann wird dieser Wert im generierten Code nicht aufgenommen.

Möchte man nun einen anderen Default-Wert haben, dann muss man das auch mitteilen.