поэтому я объявил свойство коллекции List для своего пользовательского элемента управления, когда я пытаюсь установить DefaultValueAttribute, он не компилируется с ошибкой:
Аргумент атрибута должен быть константным выражением, выражением typeof или выражением создания массива типа параметра атрибута
.. что я/м делаю не так?
private List<Color> _gradientColorList = new List<Color>();
[CategoryAttribute("Appearance")]
[DefaultValueAttribute(new List<Color>(new Color[] { Color.FromArgb(116, 194, 225), Color.FromArgb(1, 145, 200), Color.FromArgb(0, 91, 154) }))]
public List<Color> GradientColorList
{
get
{
return _gradientColorList;
}
set
{
try
{
if (value == null)
throw new ArgumentNullException();
if (value == null || value.Count < 2)
throw new Exception("Gradient color list count is less than 2.");
_gradientColorList = value;
CreateGradientList(GradientColorList);
Invalidate();
}
catch (Exception exc)
{
ExcMessageBox(exc);
}
}
}
и еще один вопрос: когда я добавляю или удаляю цвета из моего свойства коллекции GradientColorList в редакторе свойств Visual Studio (редактор коллекции цветов), блок set, содержащий try-catch, не работает, и я не знаю Зачем? как это исправить?