0

Ich muss alte Windows Forms-Anwendung neu gestalten. Also habe ich beschlossen, ein benutzerdefiniertes Button-Steuerelement zu erstellen.Wie kann Visual Studio 2017 daran gehindert werden, Designerdateien zu aktualisieren?

Angenommen, ich habe eine Hintergrundfarbe für diese benutzerdefinierte Schaltfläche definiert. Wenn ich dies tun:

  • Ort, den Knopf auf dem Formular
  • bearbeitet Eigentum eines anderen Steuer
  • das Projekt speichern

Visual Studio automatisch die Designer-Datei aktualisieren und fügt:

this.btnCustom.BackColor = System.Drawing.Color.Red;

Ich möchte nicht, dass dies geschieht. Dies sollte nur in der CustomButton-Klasse und nicht in der Designer-Datei codiert werden. Dies wird das große Problem sein, wenn ich mich entscheide, die Farbe der Schaltfläche in blau zu ändern. Anstatt die Farbe nur in der CustomButton-Klasse zu ändern, müsste ich die Farbe für jede Schaltfläche manuell ändern. Gibt es einen Weg dies zu verhindern?

+0

Sehen Sie diese https://stackoverflow.com/questions/9731363/how-to-set-design-time-property-default-values ​​ – vasek

+0

@vaske Danke, aber ich kann es immer noch nicht funktionieren. Ich habe versucht, alles von diesem Link ... – zoran

Antwort

1

Wenn Ihr Code etwas Custom ist wie folgt:

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

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
    public override Color BackColor 
    { 
     get 
     { 
      return Color.Red; 
     } 
    } 
} 

Dann, wenn auf dem Formular platziert, Designer erzeugt keine Setter für BackgroundColor:

 // 
     // userControl11 
     // 
     this.userControl11.Location = new System.Drawing.Point(67, 131); 
     this.userControl11.Name = "userControl11"; 
     this.userControl11.Size = new System.Drawing.Size(154, 37); 
     this.userControl11.TabIndex = 2; 

Also, wenn Sie Ihre Custom später ändern Es wird überall gebraucht verwendet.

+0

Wie kann ich das auf den Feldern verwenden, die nicht überschrieben werden können? Zum Beispiel auf AutoSizeMode – zoran

+0

https://StackOverflow.com/questions/1528371/hiding-unwanted-properties-in-custom-controls – vasek

Verwandte Themen