Avatar billede olehaahr Nybegynder
27. marts 2012 - 20:54 Der er 3 kommentarer og
1 løsning

User Control - autogenereret kode...

Hej,

Jeg har lavet mig en user control "IntField", der fungerer som en tekstbox, bortset fra at man kun kan skrive tal.

Når jeg tilføjer den til en form via toolboksen, så får jeg ALLE properties med, selv om de har en defaultværdi.

Hvis jeg tilføjer en "standard tekstbox", så får jeg kun 4 properties.

Er der nogen grund til at min "IntField" medtager alle properties, eller kan jeg undgå dette. Vil gerne have at koden bliver så lille som mulig - selv om den er automatisk genereret.

Hvad kan jeg gøre ?

Se koden på "intfield" og en standard tekstbox herunder.

Mvh Ole

//
// IntField2
//
this.intField2.AllowNegative = true;
this.intField2.FieldBackColor = System.Drawing.SystemColors.Window;

this.intField2.FieldFont = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.intField2.FieldForeColor = System.Drawing.SystemColors.WindowText;

this.intField2.FieldStartPos = 70;
this.intField2.HelpText = null;
this.intField2.HideLabel = false;
this.intField2.Label = "IntField";
this.intField2.LabelFont = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.intField2.LabelType = XXX.Core.Enums.LabelType.Above;
this.intField2.Listform = null;
this.intField2.Location = new System.Drawing.Point(46, 59);
this.intField2.Margin = new System.Windows.Forms.Padding(0);
this.intField2.Name = "intField2";
this.intField2.ShowRefButton = true;
this.intField2.ShowZero = true;
this.intField2.Size = new System.Drawing.Size(129, 41);
this.intField2.StringFormat = "#,0";
this.intField2.TabIndex = 1;
this.intField2.Value = 0;


//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(46, 13);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(100, 20);
this.textBox1.TabIndex = 7;
Avatar billede bvli Praktikant
27. marts 2012 - 21:34 #1
Du kan annotere de properties du ikke vil have genereret kode for med en DefaultValueAttribute.

Altså, hvis du altid initialiserer din FieldStartPos til 70, så kan du deklarere den sådan:

[DefaultValue(70)]
public int FieldStartPos {get;set;}

og så huske at initialisere den til 70 i din .ctor selvfølgelig:

public IntField() {
  this.FieldStartPos = 70;
}
Avatar billede olehaahr Nybegynder
28. marts 2012 - 20:17 #2
Mange tak for svaret.
Skriv et svar for points...

Mvh Ole
Avatar billede olehaahr Nybegynder
28. marts 2012 - 20:20 #3
Mange tak for svaret.
Skriv et svar for points...

Mvh Ole
Avatar billede bvli Praktikant
28. marts 2012 - 20:31 #4
Svar :)
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