Laden...

Gibt es Ersatz für Editor Attribut?

Letzter Beitrag vor 9 Monaten 3 Posts 509 Views
Gibt es Ersatz für Editor Attribut?

Dieser Forenbereich scheint nicht sehr begehrt zu sein. Vielleicht ist es auch "outdated". Aber es schein zu meinem Thema gut zu passen.

Ich bin gerade dabei, von .Net Framewort (also Version 4.8) auf .Net Core (also Version 8) umzusteigen. Dabei benutze ich den WinForm "Teil". Jetzt bin ich nur über ein Problem gestolpert, was sich eventuell als recht schwerwiegend herausstellt.

Ich habe eine eigene Komponente, die auch Design Editoren enthält. Im Eigenschafts-Browser erscheint bei einer Eigenschaft also ein kleiner Knopf, über den ein von mir geschriebenes Fenster aufgeht. Dort kann ich die Eigenschaft nur komfortabel ändern.

Bei der Deklaration der Eigenschaft in meiner Komponente füge ich das Attribute

Editor(typeof(XListBoxFarbenEditor), typeof(UITypeEditor)),

hinzu. Damit wird der Editor der Eigenschaft zugewiesen.

Das Ganze funktioniert im .Net Core aber nicht mehr. Über die Gründe habe ich einiges gelesen, z.B. https://devblogs.microsoft.com/dotnet/state-of-the-windows-forms-designer-for-net-applications/. Die Gründe sind auch einleuchtend.

Verstehe ich das denn richtig, dass es dafür noch eine richtige Alternative gibt? Gemäß https://github.com/KlausLoeffelmann/NetControlDesigners/tree/main kann man anscheinend was implementieren, was auf einen Klick im Designer Fenster reagiert. Das ist aber nicht im Eigenschafts-Browser.

Hat jemand Ahnung davon, ob es so etwas gibt? Oder muss ich damit leben, dass ich mit .Net Core keine eigenen Editoren für den Eigenschafts-Browser erstellen kann?

Das sollte ich doch wohl mal ausprobieren. Da mein Designer aber Teil des NuGet Pakets ist (der Benutzer meiner Komponente soll sie ja im Visual Studio Designer auch komfortabel einstellen können) muss doch jeder Benutzer meiner Komponente dann auch das geänderte Windows SDK benutzen. Obwohl es ja vielleicht doch kein größeres SDK ist.

Als Alternative habe ich mir sonst schon gedacht, meinen Komponenten Designer als extra Programm zu machen. Die Komponente bekommt dann eine ConfigString Eigenschaft vom Typ string. Dieser String wird mir ja im Eigenschafts-Browser angezeigt. Über die Zwischenablage kann ich diesen manuell in mein Designer Programm übertragen. Und auch anders herum. Der String wäre dann zwar etwas länger, aber das sollte ja egal sein. Ich muss ihn ja nicht lesen können. Intern speichere ich die Konfiguration sowieso schon als Konfigurationsstrings ab. Der Aufwand sollte also nicht zu groß sein.

Das wäre halt nur "unhandlicher" für den Benutzer.

Aber wie geschrieben: ich muss es mal ausprobieren. Das wird aber sicherlich ein paar Tage dauern.