[VC++ 2005] Propery Attribute für Custom Designer

the incredible Leitman

Erfahrenes Mitglied
Hallo Leute, hab schon wieder ein Problem, bei dem ihr mir hoffentlich weiterhelfen könnt -.-

Wenn man Control Properties schreibt, kann man ja Attribute verwenden um im Windows Designer bestimmte Aktionen haben zu können...

Wenn ich z.B. folgendes Property definiere
C++:
	public:
[
	Category("ZLSControl Size"),
	Description("The Width of the ZLSControl in the grid")
]
property int ZLSGridWidth
{
	// get und set Methode
}
Zeigt das Attribut Category den nachfolgenden Text unter dem Property des jeweiligen Controls an...

Jetzt habe ich aber einen selbst erstellten Designer und möchte eben für diesen eigene Attrinbute definieren...
Wie mach ich das? Könnt ihr mir helfen?
Wie muss ich da anfangen?

Bräuchte einfach ein Attribut, mit dem ich definieren kann, ob das Property in meinem Designer angezeigt wird oder nicht...

Hoffe sehr, jemand weiß da was,
vielen Dank erstmal

mfG
Leitman
 

Christian Kusmanow

Erfahrenes Mitglied
Hi leitman!

Viá Reflection solltest die Attribute auslesen können und entsprechend darauf reagieren...
Hast sowas schonmal gemacht? Ich mein hast ein Objekt schonmal via´Reflection zerlegt?
 

the incredible Leitman

Erfahrenes Mitglied
wieder Hi Cosmo *gg*
Heute aber wieder überall unterwegs :D

yep, ich hatte bereits ein wenig mit Reflection zu tun, nichts großartiges, aber immerhin...
dass mit dem Auslesen ist kein Problem, lediglich, wie ich ein eigenes Attribute erstellen kann, das hab ich noch nicht gemacht!
Aber ich denke, das hat sich erledigt, der Bereich ist an jemand andern übertragen worden, da der seit Jahren mir sowas zu tun hat *puh...*

Aber vielleich brauch ich das ja irgendwann mal... wo kann ich mich da weiterinformieren?

THX
Leitman
 

the incredible Leitman

Erfahrenes Mitglied
Re: AW: [VC++ 2005] Propery Attribute für Custom Designer

Nochwas zum Thema Property Grid:

Also, ich habe nun ein wunderbares Grid in meinem Designer, in dem ich alle Properties meiner Controls durchforsten und verändern kann *freu*

Nun habe ich aber ein Problem... -.-

ein Control hat als Eigenschaft eine Liste aus Points, die die Eckpunkte der visuellen Darstellung angeben... habe das nun soweit hinbekommen, dass mir die ganze Liste im PropertyGrid angezeigt wird, und ich "theoretisch" auch einzelne Punkte hinzufügen / löschen und verändern kann...

doch leider steht, wenn ich einen Punkt aus der Collection anklicke immer
X Object does not match target type
Y Object does not match target type
:(

Ich kann die Werte also nicht ändern, warum? Muss ich noch eine Set Methode für einzelne Punkte in dem Seter der Liste schreiben..... oder so? :confused:

C++:
//Property:
public:
	[
		Category("ZLSControl Properties"),
		Description("sets the edge Points of the BA")
	]
	property List<Point> ^ PointList
	{
		List<Point> ^ get()
		{
			return this->m_pointList;
		}
		void set(List<Point> ^ value)
		{
			this->m_pointList = value;
			Invalidate();
		}
	}