Могу ли я написать частичный класс .NETCF для расширения System.Windows.Forms.UserControl? - PullRequest
1 голос
/ 28 мая 2010

Хорошо ... Я пишу приложение .NET CF (VBNET 2008 3.5 SP1), которое имеет одну мастер-форму и динамически загружает определенные элементы UserControls на основе щелчка меню в некой идее фреймворка.

Существуют определенные методы и свойства, все эти элементы управления должны работать в приложении.
Прямо сейчас я делаю это как Интерфейс, но это усугубляется, когда все встают, потому что некоторые из методов являются необязательными, и все же я ДОЛЖЕН реализовать их по природе интерфейсов.

Я бы предпочел использовать наследование, чтобы иметь возможность наследовать определенный код с возможностью переопределения, но если я напишу класс, который наследует System.Windows.Forms.UserControl, а затем унаследует от него свой контроль, он будет хихикать и сообщит мне, что UserControls ДОЛЖЕН наследоваться непосредственно от System.Windows.Forms.UserControl. (Поговорим о недостатке дизайна!)

Итак, в следующий раз я подумал, ну что ж, позвольте мне использовать частичный класс для расширения System.Windows.Forms.UserControl, но когда я делаю это, хотя все это, кажется, компилируется нормально, ни одно из моих новых свойств / методов не отображается на моих элементах управления.

Есть ли способ использовать частичные классы для "расширения" System.Windows.Forms.UserControl? Например, может ли кто-нибудь дать мне пример кода частичного класса, который просто добавляет свойство MyCount As Integer readonly к классу System.Windows.Forms.UserControl? Если я могу просто увидеть, как это сделать, я могу взять его оттуда и добавить остальные функции.

Заранее спасибо! Я искал в Google, но не могу найти ничего, что, кажется, работает для расширения UserControl в .NET CF. И метод интерфейса сводит меня с ума, так как даже небольшое изменение означает обновление ВСЕХ элементов управления, независимо от того, нужно ли им «переопределить» метод или нет.

РЕДАКТИРОВАТЬ: Я действительно ищу способ сделать просто наследование кода, если это возможно, без визуального наследования. Мои элементы управления не имеют общих визуальных элементов, мне действительно нужно только наследовать общие функциональные возможности в коде позади.

Ответы [ 2 ]

2 голосов
/ 28 мая 2010

Я только что проверил наследование UserControl в проекте SmartDevice, оно отлично работает.
Я использовал BaseUserControl, созданный из шаблона UC, а не просто класс.

1 голос
/ 10 мая 2013

Ладно, чтобы заставить это работать, мне нужно было «показать все файлы проекта». Это показывает кучу скрытых файлов. Для каждой формы / элемента управления один из скрытых файлов - это файл myform.designer.vb. Вам необходимо изменить строку Inherits в файле designer.vb.

Тогда все заработало отлично.

...