Pravim svoj UserControl u C# 2005 i naleteo sam na grdan problem:
Zelim da taj moj UserControl kao pozadinsku boju dobije gradijent koji korisnik (drugi programer) odredi iz properties grid-a.Nema problema - napravio sam custom prozor koji se pojavljuje u properties grid-u i u kome korisnik kontrole odredjuje parametre gradijenta.E sad,nakon setovanja gradijenta sve bude ok ali posle kompajliranja projekta koji koristi moju UserControl gradijent se ponisti,jednostavno nestane! U Form1.designer (Form1 je parent moje kontrole),pod listom propertija moje kontrole nema svojstva za gradijent!!! (prilikom postavljanja kontrole,to svojstvo postoji i setovano je na null,posle kompajliranja svojstvo nestane).
Evo ga kod za setovanje gradijenta moje UserControl,nadam se da ce neko moci da mi kaze u cemu gresim!

private class ContrastEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.DropDown;
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
IWindowsFormsEditorService wfes = provider.GetService(
typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService;
if (wfes != null)
{
probapropertis.Form2 _frmContrast = new probapropertis.Form2();
_frmContrast._wfes = wfes;
wfes.DropDownControl(_frmContrast);
value = _frmContrast.DohvatiGrad();
}
return value;
}
}
LinearGradientBrush _bckgr;
[Editor(typeof(ContrastEditor), typeof(UITypeEditor))]
public LinearGradientBrush BackgroundGrad
{
get
{
return _bckgr;
}
set
{
_bckgr = value;
Invalidate();
}
}
Jeste,vidim ja to "LinearGradientBrush _bckgr;" ali bez obzira koju default vrednost da mu dam,uvek se desi isto....
Druga svojstva kontrole (koja su tipa,recimo,Color) rade regularno i ostaju onakva kakva su setovana od strane korisnika bez obzira koja im je default vrednost....Da li je to do tipa sa kojim se radi? Pokusao sam i sa Brus tipom (pa ga posle,castujem u LinearGradientBrush) ali isto...
O cemu se radi?
P.S. Moja kontrola je izvedena iz "Button" klase