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?
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. 🤔
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 🤔
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
Trotzdem komisch, dass das normale Setzen nicht ausreicht.
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.