Я создал FormBase
, от которого унаследовал FomBaseList
и FormBaseDetail
.
Все остальные формы в проекте унаследованы от FormBaseList
или FormBaseDetail
.
Теперь кажется, что у VS есть огромные проблемы с этим, и моя самая большая проблема заключается в том, что VS продолжает записывать значения свойств из формы Ancestor в Designer.cs из дочерней формы.
например, в FormBaseList
у меня есть это свойство / значение:
this.gttDXGridView1.OptionsView.ShowAutoFilterRow = true;
Я ожидаю, что в производной форме, например FormClientList
, это значение не упоминается в файле designer.cs, потому что он должен получать значение от своего родителя. Другими словами, просто простое простое ООП.
И я также ожидаю, что когда я изменю свойство в FormClientList
на
this.gttDXGridView1.OptionsView.ShowAutoFilterRow = false;
что это рассматривается как переопределение базового класса.
Однако VS продолжает перезаписывать свойство в FormClientList.Designer.cs
значением, найденным в FormBaseList.Designer.cs
.
Это нарушает правила ООП, на мой взгляд, другие инструменты, поддерживающие визуальное наследование, например Например, Delphi делает это правильно.
Как я могу запретить VS делать это?
Свойства изменяются с помощью конструктора.
Все элементы управления являются элементами управления DevExpress или производными от элемента управления DevExpress.
Другой пример, который работает как раз наоборот, так что это очень странно.
Например, поместите кнопку в BaseForm и дайте ей изображение.
Кнопка с изображением появляется во всех производных формах.
Теперь измените изображение на кнопке BaseForm.
Вы ожидаете, что изображение можно также изменить во всех производных формах, но этого не происходит.
Я обнаружил, что VS снова записал значение свойства кнопки во все производные файлы designer.cs, и на этот раз он не перезаписывает их.