Является ли прохождение Microsoft «Наследование от элемента управления Windows Forms» допустимой процедурой? - PullRequest
0 голосов
/ 14 мая 2018

Обновлено

Я немного новичок в Visual Studio и C #.Я сталкивался с несколькими сообщениями SO, где ответ относится к получению (посредством наследования) из базового класса Microsoft и его расширению.Я хотел выяснить, как добавить пользовательские свойства в базовый элемент управления WinForms и управлять им в Visual Studio.

Я наткнулся на процедуру Microsoft для этого.После просмотра ответа на краткое изложение этой процедуры я меняю вопрос и удаляю резюме (мой первоначальный ответ)

1 Ответ

0 голосов
/ 14 мая 2018

Комментарии Рона Бейера к процедуре Microsoft приведены ниже.

Итог, просто создайте производный класс с нуля. Результат будет таким же

Я действительно рекомендую не использовать новый объект "Пользовательский контроль", а затем изменять базовый класс в коде. Это нарушает конструктор (вы должны вручную отредактировать свойство AutoScale), и на самом деле нет причин для дизайнера. Просто запустите новый файл класса и получите соответствующий элемент управления, не нужно выполнять все шаги, описанные выше. RonBeyer

@ RonBeyer: Например, если бы я создал новый файл класса (вместо нового проекта), как бы я использовал пользовательский элемент управления в другом проекте? Если я не использую процедуру, как и где мне реализовать метод Dispose, предоставляемый в настоящее время файлом Designer.cs? Нужно ли повторно реализовывать кишки метода InitializeComponent, предоставляемого файлом Designer.cs, или метод InitializeComponent в моем автономном проекте позаботится об этом? Действительно ли это так же просто, как создание нового файла класса? NovaSysEng

Да, это так просто. Вам не нужен метод Dispose, он есть у базового класса, если только вы не используете дополнительные неуправляемые ресурсы, тогда вы реализуете его нормально (и вызываете base.Dispose). Вам вообще не нужен вызов IntializeComponent, при необходимости вы можете добавить свой собственный код инициализации в конструктор. Буквально открытый класс MyButton: Button {} является совершенно допустимым производным элементом управления. RonBeyer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...