Hallo @binoyte ,
PropertyManagerPage, ein riesiges Thema...
Es ermöglicht die Integration einer Benutzer-/SW-Schnittstelle in die SW-Umgebung, mit Standard- und Spezialkomponenten, die alle im Solidworks-Look gehalten sind.
Mit drei Ebenen von Containern: der Seite selbst, Registerkarten (PropertyManagerPageTab) und Gruppen (PropertyManagerPageGroup).
Jeder Container kann verschiedene und unterschiedliche Steuerelemente empfangen, ähnlich denen eines UserForm (z. B. Label, TextBox, Button usw.) und andere spezialisierte Steuerelemente (Auswahl von SW-Objekten).
Die Verwaltung der Position der Steuerelemente auf der Seite ist jedoch recht einfach.
Das Problem besteht darin, dass Solidworks selbst die Position der Steuerelemente auf der PropertyManager-Seite definiert, zumindest teilweise.
Lassen Sie mich das erklären: Zu Beginn wird eine Tab-Karte auf der Seite erstellt. Auf dieser Karte werden eine Schaltfläche (PropertyManagerPageButton) und eine Gruppe (PropertyManagerPageGroup) in dieser Reihenfolge erstellt. Wir würden logischerweise erwarten, dass die Schaltfläche über der Gruppe platziert wird. Tatsächlich befindet es sich darunter, dank SW.
Da SW der Gruppe(n) Vorrang bei der Position gibt, kommen die Tasten nach...
Es ist auch unmöglich, die Position von Steuerelementen innerhalb desselben Containers fein abzustimmen.
Da ein Label und ein TextBox-Objekt in derselben Gruppe definiert sind, werden sie standardmäßig untereinander mit nur einem Einzug (einfach oder doppelt) platziert.
Diese Einschränkung kann umgangen werden, indem Label (vom Typ PropertyManagerPageLabel) in den OLE-Variantentyp und das TextBox-Objekt (vom Typ PropertyManagerPageTextBox) in den OLE-Variantentyp umgewandelt wird. Die Steuerelemente nutzen daher die Top - und Left-Eigenschaften ihrer " Vorgänger " (z. B. PropertyManagerPageControl), wodurch sie ihre Positionen im Container erzwingen können.

Aber auch hier gibt es Grenzen, da SW all dies unter Beobachtung hält: Die Left-Eigenschaft scheint auf das Intervall [0... 100], was es unmöglich macht, mehrere Schaltflächen über die gesamte Breite der Seite zu platzieren.
Es ist unmöglich, die Zeile mit 4 oder 5 Tasten zu vervollständigen.

Die Symbole vor den Seitenkomponenten werden von der SetPictureLabelByName-Methode angezeigt, die für die Steuerelemente definiert ist. Auch hier müssen Sie die Komponenten in den PropertyManagerPageControl-Typ oder in einen neutralen OLE-Variantentyp umwandeln.

Ganz zu schweigen von ein paar anderen Miseren...