Einstellungen im Designermodus speichern

  • C#
  • .NET 5–6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von DTF.

    Einstellungen im Designermodus speichern

    Hallo zusammen,

    ich stehe gerade vor einem Problem wo ich nicht genau weiß, wo nach ich überhaupt suchen muss.
    Es geht um ein selbstgemachtes Control von mir :



    Ähnlich wie beim TapControl kann man im Designer "Taps" hinzufügen, löschen und weitere Steuerelemente auf diesen Taps positionieren.
    Im Hintergrund werden aber nur die Controls an einen Index gebunden, und dann je nach ausgewählten Tap(Index) angezeigt.
    Bis dahin funktioniert alles auch wie es soll. Jedoch werden nur die hinzugefügten Controls beim Debuggen und kompilieren übernommen. Wenn ich
    das Programm laufen lasse, ist die Liste mit den Zuordnungen leer.

    C#-Quellcode

    1. [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    2. public Panel myPanel { get; set; }
    3. private int Index = 0;
    4. [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
    5. private List<TapContainer> controls = new List<TapContainer>(); // <-- Ist beim starten dann leer


    Der TapContainer ist lediglich eine Klasse die eine Liste mit Namen der Controls, und den Tap-Namen speichert.

    Wie kann ich verhindern, dass die im Designer eingestellten Parameter beim debuggen nicht verloren gehen?

    LG

    Bitte verschieben, wollte es eigentlich in Sonstige Probleme posten...
    Bilder
    • Screenshot_1.png

      14,57 kB, 988×593, 298 mal angesehen
    Leute, auch wenn ziemlich unwichtig: Wir sind hier nicht beim Diskofox oder beim Sanitärhandwerk. Das Ding heißt Tab, nicht Tap.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Fuer Properties, die aus komplexeren Typen bestehen, ist es oft angebracht, eigene sogenannte CodeDOM Serializer zu schreiben. Dann spielt es auch nicht mehr eine allzu grosse Rolle, dass der Designer nicht perfekt mit Generics umgehen kann (was im uebrigen "nur" daran liegt, dass es zu dem Zeitpunkt, zu dem der WinForms Designer entwickelt wurde, es weder in C# noch in VB Generics als Sprachkonstrukt gab. Ueber retrofitting denken wir seit geraumer Zeit nach, ist aber ein super sensibles Thema, da wir ein leider sehr grosses Potential haben, breaking changes an allen Ecken und Enden zu riskieren.)

    Fuer .NET Framework gibt es zu CodeDOM Serializers entsprechende Doku in der Microsoft Hilfe.

    Fuer .NET (6, 7, 8+) funktioniert das so nicht mehr, da wir den Designer aus dem Visual Studio Prozess genommen haben (deswegen nennen wir ihn im Ubrigen auch Out-Of-Proc[ess] Designer). Genaue Hintergruende dazu gibt es hier. Fuer die Steuerelemente-Entwicklung unter .NET haben wir einen eigenen Blog Post hier. (Alles Englisch, ja, aber deepl.com oder aehnliche Translators machen inzwischen ja einen passablen Job.)

    Hope that helps!

    Klaus

    loeffel schrieb:

    (Alles Englisch, ja, aber deepl.com oder aehnliche Translators machen inzwischen ja einen passablen Job.)


    Ich hoffe einen besseren als eure automatische Übersetzung auf learn.microsoft, was da manchmal so rauskommt :S . Hatte kürzlich wegen irgendwelchen Flags für eine API funktion geschaut, da wurde sogar der Name der Flag übersetzt, wenn man nun den echten Namen nicht kennt, dann wundert man sich warum der Compiler meckert(C++) oder auch warum nun auch deutsche Namen verwendet werden. Da lese ich lieber immer auf englisch. Das wäre definitiv einer Verbesserung würdig. Wäre cool wenn du der entsprechenden Abteilung mal den Hinweis gibst, zumindest die Namen nicht mit übersetzen zu lassen.

    Edit:
    Links steht der Name, rechts eine Beschreibung, in der Beschreibung wurde der Name von einer weiteren Flag mit Übersetzt, das kann für Verwirrung sorgen. Auf der Linken Seite was alles richtig.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DTF“ ()

    Hatte kürzlich wegen irgendwelchen Flags für eine API funktion geschaut, da wurde sogar der Name der Flag übersetzt, wenn man nun den echten Namen nicht kennt, dann wundert man sich warum der Compiler meckert(C++) oder auch warum nun auch deutsche Namen verwendet werden. Da lese ich lieber immer auf englisch. Das wäre definitiv einer Verbesserung würdig. Wäre cool wenn du der entsprechenden Abteilung mal den Hinweis gibst, zumindest die Namen nicht mit übersetzen zu lassen.​


    Ohne zu wissen, auf welches Doc du dich genau beziehst, gibt es in der Regel die Moeglichkeit, Verbesserungsvorschlaege direkt auf den Docs einzubringen. Hier in Redmond arbeiten neben mir noch rund weitere 50.000 Kollegen - das dauert die Suche nach einem Verantwortlichen laenger, als die offiziellen Wege zu nehmen. Wenn wir was finden, versuchen wir genau wie der Rest der Welt ueber die vorhandenen Mechanismen die Dinge zu beheben oder das entsprechende Team zu informieren.