Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[erledigt] Struct in GUI darstellen [==> PropertyGrid]
Toxo
myCSharp.de - Member



Dabei seit:
Beiträge: 66

Themenstarter:

[erledigt] Struct in GUI darstellen [==> PropertyGrid]

beantworten | zitieren | melden

Hallo,

ich suche nach einer Möglichkeit ein struct zu Visualisieren, welches unter anderem aus anderen struct besteht.
Im Prinzip eine Art TreeView für den Datentyp struct indem ich Werte einsehen und manipulieren kann.
Kennt jemand ein geeignetes Steuerelement oder kann mir einen Hinweis geben wie man so etwas bauen kann?

Gruß
David
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Toxo am .
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

Hi, hört sich für mich nach nem PropertyGrid an.
private Nachricht | Beiträge des Benutzers
Toxo
myCSharp.de - Member



Dabei seit:
Beiträge: 66

Themenstarter:

beantworten | zitieren | melden

Danke das war genau das richtige Stichwort
private Nachricht | Beiträge des Benutzers
esparki
myCSharp.de - Member



Dabei seit:
Beiträge: 27
Herkunft: Berlin

beantworten | zitieren | melden

Hallo
habe ein ähnliches Problem, leider weiß ich nicht, wie ich die struct mit dem PropertyGrid verknüpfen kann.
Problembeschreibung:
Ich habe eine Struktur mit ca. 150 Variable (diese wird zur Kommunikation mit einer SPS-Verwendet).
Für Testzwecke möchte ich mir diese in einem extra Fenster Anzeigen lassen und mit bspw. CheckBoxen setzen bzw rücksetzen (Es handelt sich nur um Boolsche Werte).
Ich habe bisher keine Liste (CheckListBox, DataGridView,...), mit der ich eine Struktur direkt Verknüfung kann, gefunden. Alles nur über Arrays oder List<>.
Wenn ich aber bspw. via Reflection die struct in eine Liste kopiere, dann verliere ich doch den eigentlichen Bezug, wenn ich die Variable in der Liste verändere.
Übersehe ich hier etwas oder ist es eventuell gar nicht möglich eine struct dynamisch in der GUI anzeigen zu lassen mit der Möglichkeit der Änderung.
Gruß Marco
private Nachricht | Beiträge des Benutzers
Cat
myCSharp.de - Member

Avatar #avatar-3070.jpg


Dabei seit:
Beiträge: 790

beantworten | zitieren | melden

Du brauchst beim PropertyGrid nur SelectedObject mit einer Instanz deiner Struktur zuweisen: Using PropertyGrid
Die Struktur sollte dabei aber aus Properties bestehen und nicht nur aus "public fields", am einfachsten per "automatic properties".
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo esparki,

wenn man einen struct an eine (andere) Variable zuweist, wird der Inhalt des Structs in die Variable kopiert. Anschließend gibt es zwei "Instanzen" des Structs. Die Änderung der einen beeinflusst die andere nicht.

Anders sieht es bei class aus, denn Klassen sind Referenztypen. Wenn man ein Objekt an eine Variable zuweist, wird in der Variable eine Referenz auf das Objekt gespeichert. Änderungen über die Variable ändern also das Original-Objekt, das überhaupt nicht kopiert wurde.

Eine Änderung von struct zu class würde also wohl das konkrete Problem auf einfache Weise lösen.

Wenn du aus anderen Gründen weiterhin mit structs arbeiten musst, dann musst du sicherstellen, dass der struct nie kopiert, sondern immer mit dem Original gearbeitet wird. Oder dass die Änderungen aus der Kopie (später) zurück ins Original übertragen werden. Für beide Möglichkeiten gibt es verschiedene Lösungsansätze.

Allerdings sind wir bei alledem mindestens nah an [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore
private Nachricht | Beiträge des Benutzers