Entwickler-Ecke

WinForms - PropertyGrid Multiline Property


erfahrener Neuling - Di 12.04.16 12:20
Titel: PropertyGrid Multiline Property
Hallo,

ich habe ein PropertyGrid, in dem verschiedene Eigenschaften angezeigt werden. Nun habe ich eine Eigenschaft, welche in mehreren Zeilen angezeigt werden soll. Ich habe schon überall geguckt, aber außer mir eine eigene PropertyGrid-Klasse zu erstellen (was ich nicht kann), hab ich nichts gefunden.

Bitte helft mir mit allem, was ihr wisst! Ich wäre euch sehr dankbar!

EDIT: Zeilenumbruch eines strings, wenn dieser an die Grenze der Property-Zelle gerät


Ralf Jansen - Di 12.04.16 12:23

Wir brauchen mehr Details. Was meinst du genau mit mehreren Zeilen? Ist es eine komplexe Eigenschaft mit Untereigenschaften die in eigenen Zeilen angezeigt werden sollen oder geht es um Zeilenumbrüche in einem Text oder oder oder ....


erfahrener Neuling - Di 12.04.16 12:29

Es geht darum, dass wenn ein string eine bestimmte Länge überschreitet, ein Zeilenumbruch geschehen soll. (Vergleichbar mit Multiline-Eigenschaft einer Richtextbox)


Ralf Jansen - Di 12.04.16 13:23

Das geht nur im Editor den man im PropertyGrid öffnen kann nicht in der Zelle selbst.


erfahrener Neuling - Di 12.04.16 14:55

Ok ich werd mal gucken, was ich dazu finde


Ralf Jansen - Di 12.04.16 15:08

Du mußt in deiner Klasse einfach nur die Property attributieren so das der passende Editor benutzt wird


C#-Quelltext
1:
2:
[Editor(typeof(MultilineStringEditor), typeof(UITypeEditor))]
public string MeinLieberMerzeiligerText { get; set; }


Wobei ich vermute das der MultilineStringEditor einfach nur mehrzeilig ist aber kein WordWrap unterstütz. Das müßtest du dann selbst programmieren.

Edit: Beispiel
http://stackoverflow.com/questions/130032/multi-line-string-in-a-propertygrid

Da müßtest du wahrscheinlich an der textEditorBox nur noch WordWrap einschalten.


erfahrener Neuling - Mi 13.04.16 08:04

Hi danke dafür. Aber welche Using-Direktiven verwendest du dafür (MultilineStringEditor + UITypeEditor)? Ich habe nur Microsoft.Practices.EnterpriseLibrary.Configuration.Design.ComponentModel.Editors gefunden, aber wo kriege ich die dll dafür her?


Ralf Jansen - Mi 13.04.16 08:36

Laut Hilfe [https://msdn.microsoft.com/de-de/library/system.componentmodel.design.multilinestringeditor%28v=vs.110%29.aspx] liegt die Klasse in der System.Design Assemlby die müßtest du also erstmal referenzieren. Und der Namespace für dein using wäre laut Hilfe System.ComponentModel.


erfahrener Neuling - Mi 13.04.16 08:59

ja passt :)

die korrekten using-direktiven waren jetzt:
System.ComponentModel.Design für MultiLineStringEditor und
System.Drawing.Design für UITypeEditor

Jetzt kann ich weitermachen :mrgreen: