Frage Wie kann der VS IDE-Designer für C # ungültig gemacht / aktualisiert werden?

Ich habe CustomForm geerbt vonBilde implementiert eine boolesche Eigenschaft namensStütz. Die Formulare, die ich verwenden werde, werden von @ erbe CustomForm. Mit dieser Eigenschaft werden einige Zeichen und Änderungen (sofern aktiviert) am Formular vorgenommen. Dies funktioniert jedoch nicht ordnungsgemäß. Die von VS IDE entworfene Aktualisierung wird nicht durchgeführt, um die Änderungen anzuzeigen. Wenn ich jedoch STRG + UMSCHALT + B drücke (Menü: Erstellen »Projektmappe erstellen), wird die VS-IDE aktualisiert. Der Formular-Designer verschwindet sogar für den Bruchteil einer Sekunde und zeichnet sich selbst neu, wobei die neuen Änderungen angewendet werden.

Also, gibt es eine Möglichkeit, den VS IDE-Designer per Code dazu zu zwingen, sich selbst zu aktualisieren, so wie es geschieht, wenn ich die Lösung erstelle? Wenn ja, könnte ich diesen Code zum @ hinzufügStütz Set Accessor und mein Problem war weg.

Hinweis, dass ich versucht habe, Invalidate (), Refresh () und Update aufzurufen. Aber keiner von ihnen schien das Problem zu beheben ...

Hier ist ein kleiner Einblick in mein echtes Problem. Mein Code sieht ungefähr so aus:

internal class MyForm : Form {
    private FormBorderStyle formBorderStyle;
    private bool enableSkin;

    [DefaultValue(false)]
    public bool EnableSkin {
        get {
                return enableSkin;
        } set {
                enableSkin = value;

                if(enableSkin) {
                        BackColor = Color.Lime;
                        MaximizedBounds = Screen.GetWorkingArea(this);
                        TransparencyKey = Color.Lime;

                        base.FormBorderStyle = FormBorderStyle.None;
                } else {
                        BackColor = SystemColors.Control;
                        MaximizedBounds = Rectangle.Empty;
                        TransparencyKey = Color.Empty;

                        base.FormBorderStyle = FormBorderStyle;
                }
        }
    }

    [DefaultValue(FormBorderStyle.Sizable)]
    public new FormBorderStyle FormBorderStyle {
        get {
                return formBorderStyle;
        } set {
                formBorderStyle = value;

                if(EnableSkin) {
                        base.FormBorderStyle = FormBorderStyle.None;
                } else {
                        base.FormBorderStyle = formBorderStyle;
                }

        }
    }

    internal MyForm() {
        EnableSkin = false;
        FormBorderStyle = FormBorderStyle.Sizable;
    }
}

Und das Problem, das ich habe, ist ungefähr so:http: //blogs.msdn.com/calvin_hsia/archive/2007/05/01/windows-vista-aero-borderstyle-paint-problem-as-non-administrator.asp

In meinem Fall passiert das, wenn Sie EnableSkin auf True setzen, es wieder auf False ändern und wenn Sie dann den FormBorderStyle ändern, wird das Problem verursacht, das Sie auf dem obigen Link sehen können. Wie im Artikel erwähnt, tritt das Problem nicht auf, wenn VS als Administrator ausgeführt wird.

Deshalb suche ich nach einer Möglichkeit, den VS IDE-Designer zu aktualisieren. Mit anderen Worten, jetzt, da ich diesen Artikel gefunden habe, muss ich das Fenster so neu erstellen, wie es geschieht, wenn die Lösung neu erstellt wird.

Wie deklariere ich eine Eigenschaft im Basisformular?

Ich habe derzeit:

public class MyForm : Form { }

Und ich kann nur Eigenschaften innerhalb dieser Klasse deklarieren, nicht innerhalb des Formulars 1 ... Ich habe auch Invalidate () verwendet, wie ich im ersten Beitrag sagte, aber es behebt mein Problem nicht.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage