Как создать пользовательский элемент управления Winform, который поддерживает несколько элементов, таких как список - PullRequest
4 голосов
/ 27 января 2011

Мне кажется, я понимаю основы создания пользовательского элемента управления winforms.Я могу сделать «Добавить новый» и выбрать пользовательский элемент управления, и это даст мне дизайнерскую поверхность, файл конструктора, файл с выделенным кодом и т. Д. И затем я мог бы изменить его, чтобы он наследовал от чего-то другого, кроме UserControl (например, списка или текстового поля).

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

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

Спасибо.

Сет

РЕДАКТИРОВАТЬ
Я решил использовать другой подход.Я оставляю вопрос, хотя.Это явно труднее, чем я догадывался.К сожалению, WPF для меня не вариант.Просто собираюсь использовать сетку данных.

Ответы [ 3 ]

3 голосов
/ 27 января 2011

И тогда я мог бы изменить его, чтобы он наследовал от чего-то другого, кроме UserControl (например, списка или текстового поля).

Здесь вы совершаете ошибку ... когда вы наследуете UserControl, вы не должны менять наследование. Наследование от UserControl дает вам точно возможность разместить несколько различных элементов управления на вашей поверхности дизайна (например, список и два комбинированных списка). Эти комбинированные элементы управления делают ваш уникальный (пользовательский) элемент управления, которому вы должны дать понятное имя. понимать это? Это действительно просто, очень мощно, очень многократно, забавно, и мы часто его используем.

Хорошая ссылка может быть такой: Прохождение Microsoft , MonthPicker (просто)

0 голосов
/ 27 января 2011

Создайте пользовательский элемент управления, добавьте список и установите его в dock = full (или в соответствии с вашими требованиями).

переопределяет свойство DataSource и заставляет его вызывать метод, который объединит источники в один источник, а затем связывает / перепривязывает этот единственный источник в ваш список.

Есть недостатки к этому, но это один из способов.

Другой способ - не создавать пользовательский элемент управления, а просто объединить все ваши источники в один источник, а затем связать его с элементом управления списком.

WPF не поможет в этой ситуации.

0 голосов
/ 27 января 2011

Вы не сможете переопределить элемент управления списком в соответствии с вашими требованиями. В любом случае не легко. Однако есть альтернативы:

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

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

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