Visual Studio — новые значения свойств «по умолчанию» для унаследованных элементов управления.
-
08-06-2019 - |
Вопрос
Мне нужна помощь в установке нового значения свойства по умолчанию для унаследованного элемента управления в Visual Studio:
class NewCombo : System.Windows.Forms.ComboBox
{
public NewCombo() { DropDownItems = 50; }
}
Проблема в том, что свойство базового класса DropDownItems
имеет установленный атрибут «по умолчанию», который имеет другое значение (не 50).В результате, когда я перетаскиваю элемент управления в форму, файл дизайнера получает явный mycontrol.DropDownItems = 50;
линия.
Поначалу это не имеет значения.Но если позже я изменю свой унаследованный класс на DropDownItems = 45;
в конструкторе это не влияет ни на один из элементов управления в любой форме, поскольку во всех этих файлах дизайнера по-прежнему жестко запрограммировано значение 50.И весь смысл заключался в том, чтобы установить значения в одном месте, чтобы я мог справиться с тем, что клиент меняет свое мнение.
Очевидно, что если бы я создавал собственное свойство в подклассе, я мог бы присвоить ему собственный атрибут дизайнера по умолчанию, какой бы я ни хотел.Но здесь я хочу изменить значения свойств по умолчанию в базе.Есть ли способ применить атрибуты Visual Studio к члену базового класса?Или есть какой-то другой обходной путь, чтобы получить желаемый результат?
Решение
В производном классе вам нужно либо переопределить (или затенить, используя новый) рассматриваемое свойство, а затем повторно примените атрибут значения по умолчанию.