Guten Morgen!
Ich hoffe ihr könnt mir weiterhelfen, ich erzeuge mit C# über die API in einen anderen Programm ein projekt. Die Projekteigenschaften werden bisher über ein pop-up Fenster mitgegeben, da dies aber nicht gerade sehr elegant ist möchte ich es gerne so wie im angehängten Bild mach (Snapshot aus dem Originalprogramm).
Da ich relativ neu bin, und eigentlich no nie mit solchen Forms gearbeitet habe fand ich zumindest laut google heraus das es sich um eine listview handeln sollte.
Aber bisher ist es mir versagt geblieben auf der rechten Seite die Eigenschaft zu schreiben (read-only) und links den Wert den man editieren sollte können ist das überhaupt möglich und vorallem wie?
Und zweitens, wie wäre das mit einem propertyGrid? Kann man hier überhaupt spezifische Werte eintragen? bis jetzt habe ich nur Beispiele mit Eigenen Klassen gefunden...
lg
Ich denke, ein PropertyGrid wäre hier besser geeignet, bei der Form, die du anstrebst.
Dafür musst du natürlich eine Klasse haben, die diese Properties besitzt. Sowas ist doch aber schnell gebaut.
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!
YARRRRRR!
Hallo Patzi88,
auch wenn das Bild wohl ein ListView zeigt, spricht vieles dafür ein PropertyGrid zu verwenden. Ich meine, in einem PropertyGrid kann man auch "virtuelle" Eigenschaften anzeigen lassen, also solche, die es in einem Objekt nicht gibt. Auswählen welche Properties angezeigt werden kann man auf jeden Fall mit TypeConverter.GetProperties. Im schlimmsten Fall muss man CodeDOm benutzen, um ein Objekt mit den passenden Eigenschaften zu erzeugen.
herbivore
Eindeutig PropertyGrid. Du kannst dann nämlich zu den Properties unter anderem beispielsweise TypeConverter definieren, um die Auswahl/Eingabe von Werten zu erleichtern.
So wie herbivore bereits sagt, können auch zusätzliche Properties angezeigt werden, die im eigentlichen Objekt nicht vorkommen (PropertyDescriptor).
Bei deinem Vorhaben ist TypeDescriptor eine Zentrale Figur bei der Umsetzung.
> Codejunky <
Erstmal danke für die vielen Ratschläge!
MIttlerweile habe ich eine eigene Klasse und er zeigt mir auch schön alles an was ich haben will 😉...
Nur habe ich noch eine elementare Frage:
Ich rufe die klasse mit
projectProperties prop1 = new projectProperties();
propertyGrid1.SelectedObject = prop1;
auf funktioniert tadellos, nur wie bekommen ich die Werte wieder in meine ursprüngliche Form zurück, sry aber ich steh total auf der Leitung...
I habs mit einen button versucht der die Klasse aber wieder neu öffnet gleich wie oben und dann ließt er logischerweise nur die vordefinierten Werte aus und nicht die geänderten hmmm....
Okay danke is mir inzwischen doch wieder eingefallen 😉
Es ist gar nicht so leicht nach den Grundwehrdienst wieder voll drauf los zu programmieren 😉
nur wie bekommen ich die Werte wieder in meine ursprüngliche Form zurück
DefaultValueAttribute. Dieses setzt du auf die Properties mit dem entsprechenden Standard-Wert.
> Codejunky <