Унаследованные стили пользовательского интерфейса. Возможно ли это в Windows Forms?

У меня есть проект примерно с 10 WinForms. Прямо сейчас форма и ее элементы управления имеют стиль / внешний вид по умолчанию. Я хочу создать класс, который может устанавливать / изменять пользовательский интерфейс каждой формы.

Я считаю, что класс интерфейса должен быть разработан и затем унаследован в любой желаемой форме. Надеюсь, я прав в этом. Как мне это сделать?


person 911Rapid    schedule 18.03.2015    source источник
comment
Немного расплывчатый вопрос ... можете ли вы добавить несколько примеров? А вы когда-нибудь думали об использовании вместо этого WPF? Или разбить формы на несколько пользовательских элементов управления, которые можно использовать повторно?   -  person Florian Schmidinger    schedule 18.03.2015
comment
@FlorianSchmidinger: Нет, я не могу использовать WPF. Я должен работать с самим WinForms. Я не знаю, какие примеры вам нужны? Я хотел бы узнать больше о разбиении форм на несколько форм и создании настраиваемых элементов управления многократного использования. Спасибо   -  person 911Rapid    schedule 18.03.2015
comment
Если у вас есть определенный макет, который повторяется ... то есть метки и текстовые поля для ввода адреса, вы можете создать пользовательский элемент управления, инкапсулирующий эти функции. Затем вы можете использовать этот элемент управления снова и снова ... другим примером может быть навигация по данным ... также можно поместить этот пользовательский элемент управления в дополнительные библиотеки, чтобы вы также могли использовать их для других проектов ... Там также являются производными пользовательскими элементами управления и производными формами, которые могут управлять макетом полиморфным способом.   -  person Florian Schmidinger    schedule 18.03.2015
comment
Хороший ресурс - видео с YouTube и / или видео из виртуальной академии MicroSoft. было бы слишком много объяснять все эти возможности в тексте =)   -  person Florian Schmidinger    schedule 18.03.2015


Ответы (1)


Вы можете добиться этого, создав базовый класс, производный от Form. Вы можете установить стили внутри этого базового класса, и они будут производиться всеми классами, производными от этого базового класса. Например, вы можете установить Font или BackColor.

Я хочу предложить взглянуть на WPF, у которого для этого есть гораздо лучшая модель. WPF имеет возможность разделять макет и техническую работу Window. Вы можете установить стили, которые будут автоматически применяться ко всем элементам управления определенного типа.

person Patrick Hofman    schedule 18.03.2015
comment
и вы можете создавать базовые классы, производные от всех типов элементов управления, а затем использовать их по мере необходимости. - person Shashank Shekhar; 18.03.2015
comment
@Shekhar: действительно. К элементам управления применяются те же правила, что и к формам. Спасибо. - person Patrick Hofman; 18.03.2015
comment
@PatrickHofman: Я не хочу использовать WPF. Мне нужно использовать сам WinForms. Спасибо - person 911Rapid; 18.03.2015
comment
@ 911Rapid: Тогда применяется первая часть. - person Patrick Hofman; 18.03.2015
comment
@PatrickHofman: Итак, правильно реализуем интерфейсный класс ?? - person 911Rapid; 18.03.2015
comment
@ 911Rapid Класса интерфейса не существует. Это либо интерфейс, либо класс. - person Patrick Hofman; 18.03.2015
comment
@PatrickHofman; Мне очень жаль, Патрик. Я новичок в C #. Я могу ошибаться, используя терминологию, но все еще изучаю Концепции. Но я имел в виду ... нам нужно создать интерфейс и использовать наследование - person 911Rapid; 18.03.2015
comment
Вам нужно создать класс. - person Patrick Hofman; 18.03.2015