Как мне выбрать дочерний элемент usercontrols в конструкторе? - PullRequest
1 голос
/ 14 октября 2011

У меня проблемы с созданием одного из моих пользовательских элементов управления.

У меня есть список в пользовательском контроле, и мне нужно иметь возможность нажимать на элементы списков, пока они находятся в конструкторе.Это заставило бы его работать так же, как tabcontrol.

Я не особо разбирался в usercontrols, но я пытался перехватить некоторые события overide без успеха.удалось найти что-нибудь в Интернете .. Есть идеи о том, как я могу это сделать?

Заранее спасибо =)

Ответы [ 3 ]

2 голосов
/ 27 октября 2011

@ Брэдли: спасибо, что указал мне правильное направление

Вам нужно написать класс ControlDesigner, а затем использовать его в атрибуте [Designer( ... )] в UserControl.

Смотрите пример здесь: http://msdn.microsoft.com/en-us/library/sycctd1z(v=VS.90).aspx

Для фактического клика:

http://msdn.microsoft.com/en-us/library/system.windows.forms.design.controldesigner.gethittest(v=VS.90).aspx

ControlDesigner имеет метод protected bool GetHitTest(Point point) - вы можете реализовать его в ControlDesigner и возвращать true, если хотите, чтобы ваш элемент управления обрабатывал щелчок, основываясь на местоположении щелчка на экране.

1 голос
/ 25 октября 2011

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

http://social.msdn.microsoft.com/Forums/pl-PL/winforms/thread/0b6ed0cb-907c-4733-b245-ae5d0b0e6606

0 голосов
/ 14 октября 2011

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

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