Извлечение из класса Form в .NET - PullRequest
3 голосов
/ 23 апреля 2009

Теоретически вы можете получить из Формы, но разве это не то, что вы не должны делать? Интуитивно я так думаю, но я никогда не слышал о таких правилах.

Я имею в виду некоторый конкретный класс, который уже происходит от формы. Например, если у меня есть class MyForm : Form, возникает вопрос: могу ли я получить от MyForm?

Ответы [ 6 ]

5 голосов
/ 23 апреля 2009

Вы должны получить форму при создании новой формы Windows. При создании новой формы в Visual Studio исходные файлы, которые вы получаете, уже получены из формы.

4 голосов
/ 23 апреля 2009

Нет жесткого и быстрого правила, которое мешает вам получить форму Windows. Если у вас есть веская причина для этого (например, использование некоторых функций, общих для вашего проекта во всех формах), тогда продолжайте.

2 голосов
/ 23 апреля 2009

Совершенно разумно извлекать формы из общего базового класса, производного от форм, и может быть полезно для стандартного внешнего вида вашего приложения.

1 голос
/ 23 апреля 2009

Я настоятельно рекомендую наследовать от BaseForm. Это делает его очень простым Сделайте все EditForms похожими, потому что вы можете установить общие элементы управления на основе (например, кнопки), дать им backcolor / image и т. д. То же самое касается всех видов форм, которые можно сгруппировать. У меня обычно есть 1 BaseForm, а затем снова BaseForm в соответствии с его «группой» (редактировать, список, диалог, ...)

Это заставляет вас выглядеть более согласованно.

То же самое относится и к коду, обычно форма редактирования имеет похожую базу кода: проверка, логика сохранения, ... Вы можете поместить всю эту логику в базовую (ые) форму (и) и затем иметь несколько абстрактных методов, которые вы можете реализовать в childform.

1 голос
/ 23 апреля 2009

Мы успешно извлекли класс из формы, а затем извлекли из него все наши формы в проекте. Это позволяет нам легко применять политики для всего проекта. Все наши формы имеют последовательный внешний вид. Это также позволило легко запомнить форму и расположение каждой формы.

0 голосов
/ 23 апреля 2009

Вопрос действительно зависит от того, что делает ваш производный класс.

Форма и многие такие конечные классы предназначены для выполнения множества сложных задач, чтобы дать вам все преимущества действий, связанных с формой, без необходимости слишком много кода.

Правило будет примерно таким: «Если вы намереваетесь выполнить простую оконную операцию, и если она не может нарушить обычное поведение, то лучше не выводить из формы.

Или, поскольку форма сильно загружена, вы можете сэкономить память и время процессора, извлекая ее из базовых классов вместо формы.

...