Hur kan man dölja visa properties t ex Text, bakgrundsfärg osv i en kontroll? det beror var du vill gömma den Då gör jag väll fel som vanligt... Image är inte markerade för ovveride. Dvs de är inte virtuella. Vill du ha en egen implementation så måste du använda nyckelordet new istället. Men då kommer din variant bara gälla så länge du accessar kontrollen via en variabel av din typ, inte om du tex använder en variabel av typen control. Om du vill gömma properties som inte går att gömma via arv och browsable så måste du förse din kontroll med en egen "designer"Om properties i en egen kontroll
Sv: Om properties i en egen kontroll
[Browsable(false)]
public override color BackColor...
gömmer den i propbrowsernSv:Om properties i en egen kontroll
<code>
[Browsable(false)]
public override Color BackColor;
[Browsable(false)]
public override Font Font;
</code>
Error:
<info>
Error 1 The modifier 'override' is not valid for this item
</info>
Hur fixar jag det?
Jag försöker också meddetta:
<code>
[Browsable(false)]
public override Color BackColor(System.Windows.Forms.PaintEventArgs e)
{ }
</code>
Och error naturligtvis
<info>
Error 1 'VertikalText.VertikalText.BackColor(System.Windows.Forms.PaintEventArgs)': cannot override because 'System.Windows.Forms.Control.BackColor' is not a function
</info>
[REDIGERAT]
Nu har jag kommit en bit på vägen
<code>
[Browsable(false)]
public override Color BackColor{get { return base.BackColor; }set { base.BackColor = value; }}
</code>
Och där blir det ju bra, men här har jag problem:
<code>
[Browsable(false)]
public override Image Image { get { return base.Image; } set { } }
[Browsable(false)]
public override System.Drawing.ContentAlignment ImageAlign { get { return base.ImageAlign; } set { } }
[Browsable(false)]
public override int ImageIndex { get { return base.ImageIndex; } set { } }
[Browsable(false)]
public override string ImageKey { get { return base.ImageKey; } set { } }
[Browsable(false)]
public override System.Windows.Forms.ImageList ImageList { get { return base.ImageList; } set { } }
[Browsable(false)]
public override System.Drawing.ContentAlignment TextAlign { get { return base.TextAlign; } set { } }
</code>
Och error:
<info>
Error 1 'VertikalText.VertikalText.Image.get': cannot override inherited
member 'System.Windows.Forms.Label.Image.get' because it is not marked virtual, abstract, or override
Error 2 'VertikalText.VertikalText.Image.set': cannot override inherited member 'System.Windows.Forms.Label.Image.set' because it is not marked virtual, abstract, or override
Error 3 'VertikalText.VertikalText.ImageAlign.get': cannot override inherited
member 'System.Windows.Forms.Label.ImageAlign.get' because it is not marked virtual, abstract, or override
//osv
</info>
Förslag på hur jag fixar till detta???Sv: Om properties i en egen kontroll
Sv: Om properties i en egen kontroll
typ:
[Designer(typeof(MyOwnDesigner))]
public class MyControl: UserControl
i din designer så finns det metoder som anropas när formulärdesignern vill hämta properties.
så där går det bra att filtrera bort properties oavsett om de går att overrida eller inte.