Я создаю некоторые пользовательские элементы управления, которые наследуют от базового пользовательского элемента управления, который имеет следующие свойства:Настройка свойств
public Color BorderColor
{
get { return BorderColor; }
set
{
if (!FollowsScheme)
BorderColor = value;
}
}
public Color[] FillColors
{
get { return FillColors; }
set
{
if (!FollowsScheme)
FillColors = value;
}
}
public bool FollowsScheme { get; set; }
Я пытаюсь сделать так, если пользователь устанавливает FollowsScheme ложь, только тогда могут ли они редактировать свойства BorderColor и FillColors. Если FollowsScheme истинно, то они не могут редактировать два свойства. В этом коде вы можете увидеть, что я пытался сделать, и думал, что это сработает, но когда я построю решение и добавлю элемент управления в форму, Visual Studio выйдет из строя. Как мне это сделать?
Позвольте мне лучше объяснить, если для параметра FollowsScheme установлено значение true, в методе OnPaint код будет рисовать элемент управления на основе свойств BorderColor и FillColors, который основан на статическом классе, заполненном цветами для темы, которую я разработал. Если для параметра FollowsScheme установлено значение false, то метод OnPaint будет использовать свойства BorderColor и FillColors и рассчитать новую схему и установить эти цвета для перечисленных частных свойств, а затем они будут использованы для рисования элемента управления.
Huhhh, я всегда видел поля заднего вида для свойств в исходниках, и я никогда не понимал, что это то, для чего оно предназначено! Спасибо! – Minato
@Minato Все хорошие люди. Обратите внимание, что вам нужно ввести поле поддержки для * обоих * свойств. Пожалуйста, учтите, что этот ответ считается принятым, если он адекватно отвечает на ваш вопрос. –
Да, я действительно ждал, пока мне не разрешат ответить, и я потерял след. Еще раз спасибо. – Minato