Avatar billede mysitesolution Nybegynder
31. december 2005 - 01:31 Der er 14 kommentarer og
1 løsning

Property liste

Hej...

Jeg er ved at lave en control...

jeg har så en property som referrere til en klasse hvor der også er nogle properties... Jeg vil så gøre, så de properties også vises i propertygrid. Altså ligesom når man bruger Point eller Size så kommer der et lille + man kan trykke på...
Avatar billede spif2001 Nybegynder
02. januar 2006 - 10:41 #1
Du skal bruge nogle attributter på din property:

[Category("Min kategori")]//sætter propertyen ind i en kategori    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]//giver under værdier muligheden - det lille +
[Description("Bruges til at min klasse opsætning.")]//giver en lille beskrivelse når man trykker på den
public DinKlasse MyClass
{
            get
            {
                return this.myClass;
            }//get
}

på property'erne i din klasse (DinKlasse), kan du sætte attributten [DefaultValue(false)], så den husker dine ændringer fra compilering til compilering.
Avatar billede mysitesolution Nybegynder
02. januar 2006 - 20:28 #2
hhmm... hvad skal jeg så gøre med de properties der er i klassen, fordi der kommer ikke det +... men før var navnet på property´en grå og nu er den sort, så noget er sket
Avatar billede spif2001 Nybegynder
03. januar 2006 - 09:15 #3
Hver gang det er et objekt, der skal have vist hvad der ligger under, skal du bruge [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]

Eks. fortsat fra før:

DinKlasse klassen har en DinUnderKlasse property. Så gør du det samme én gang til:

[Category("Min kategori")]  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[Description("Bruges til min underklasse opsætning.")]
public DinUnderKlasse MySubClass
{
            get
            {
                return this.mySubClass;
            }//get
}
Avatar billede mysitesolution Nybegynder
03. januar 2006 - 12:05 #4
det har jeg forstået... men der kommer ingen properties frem under den klasse... er der noget specielt jeg skal gøre med de properties så?
Avatar billede spif2001 Nybegynder
03. januar 2006 - 12:17 #5
ups - glemte vist noget

Din klasse skal have en attribut også:

using System.ComponentModel;

[TypeConverterAttribute(typeof(ExpandableObjectConverter))]
public class DinKlasse
{
  ...
}
Avatar billede mysitesolution Nybegynder
03. januar 2006 - 12:26 #6
Nu er det hele jo meget bedre :)

har lige et sp til som du kan få lidt flere points for hvis du kan løse det...

Når man har fx en Point i property grid, så udfor property navnet står der "10; 20" altså hvad værdierne X og Y er... men ved mig, står der det, som minklasse.ToString() "outputter"... hvordan kan jeg lave det om?
Avatar billede spif2001 Nybegynder
03. januar 2006 - 12:34 #7
pyh - det er for lang tid siden jeg rodede med det her.

Prøver lige at kigge på det...
Avatar billede mysitesolution Nybegynder
03. januar 2006 - 12:39 #8
okay danke...
Avatar billede spif2001 Nybegynder
03. januar 2006 - 12:40 #9
hmmm... kan ikke lige finde det.

Men der ligger en masse attributes i System.ComponentModel. Prøv at kigge på dem.
Avatar billede spif2001 Nybegynder
03. januar 2006 - 12:56 #10
http://www.codeproject.com/cs/miscctrl/ShapeControldotNET.asp

her er en fyr der laver noget a la det du vil.

Så vidt jeg kan se i hans kode (downloadede det), bruger han en

[EditorAttribute(typeof(ShapeTypeEditor), typeof(System.Drawing.Design.UITypeEditor))] 

MEN ShapeTypeEditor er én han selv laver, så med mindre der er en eller anden let måde at gøre det på (som jeg ikke kender), skal man i gang med en større omgang, for at få design editoren til at opføre sig på den måde.
Avatar billede spif2001 Nybegynder
03. januar 2006 - 13:08 #11
Kom vist også til at skrive en fejl i starten - retter lige:

PÅ PROPERTIES:
//sætter propertyen ind i en kategori
[Category("Min kategori")]

//sørger for at ændrede værdier bliver gemt
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]

//giver en lille beskrivelse når man trykker på den
[Description("Bruges til at min klasse opsætning.")]

//Har variablen en default værdi, sørger dette for at den ikke sætter den default igen efter man har ændret den.
[DefaultValue(false)]


PÅ KLASSE:
//Giver det lille + så man kan "folde" objektet ud
[TypeConverterAttribute(typeof(ExpandableObjectConverter))]
Avatar billede spif2001 Nybegynder
03. januar 2006 - 13:10 #12
En ekstra lille finte er denne attribut til properties:

[Browsable(false)]

Den gør, at propertyen IKKE bilver vist i design editoren.
Avatar billede spif2001 Nybegynder
04. januar 2006 - 11:34 #13
ok?
Avatar billede mysitesolution Nybegynder
04. januar 2006 - 22:43 #14
jeps...

danke... vil du have lidt til for din ekstra indsats?
Avatar billede spif2001 Nybegynder
05. januar 2006 - 14:39 #15
nej - det er fint :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester