Hallo,
kann ich zur Laufzeit die properties in einer klasse z.B.. myObject als readOnly einstellen? ich meine es so, dass ich das PropertyGrid in mehreren Formularen benutzen möchte und bei den Formularen soll nach zugewiesenen rechten einige Einträge in PropertyGrid editierbar sein bzw. nur lesbar.
Zweites Problem ist mit
[CategoryAttribute("blabla"), DescriptionAttribute("Object information")]
public Dictionary<string, SizeF> ObjectSize
{
get { return objectSize; }
//set { chipsize = value; }
}
Da kriege ich collection als Ausgabe. Width und Height wird nicht angezeigt. Steht nur "Object does not match target type."
mfg
robmir
Zu Problem 1: Ich denke, du musst dir selber das "Profil" der Klasse erzeugen, das du dann zur Laufzeit anpassen kannst. Siehe dazu ICustomTypeDescriptor und PropertyDescriptor (System.ComponentModel). Am besten suchst du mal bei Codeproject nach "PropertyGrid" und "custom". Da müsstest du einige Anleitungen finden.
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee
Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
Ich hab dazu das FilteredPropertyGrid von CodeProject verwendet.
Allerdings kann man damit (denke ich) nicht das ReadOnly-Proberty zur laufzeit setzten, sondern lediglich entscheiden, welche Properties angezeigt bzw. ausgeblendet werden.
Sonst gibt es wie progger schon gesagt hat auf CodeProject eine Menge anderer PropertyGrid-Varianten, die vielleicht das gewünschte können.