Я пытаюсь создать пользовательский элемент управления, который будет предоставлять перетаскиваемый разделитель между двумя панелями - точно так же, как SplitContainer - в настраиваемой реализации IDesignerHost. Сам SplitContainer, насколько я могу судить, не подходит; он вызовет исключение, если он не используется в конструкторе Visual Studio.
Моя реализация будет выглядеть примерно как this, за исключением того, что я не получаю необходимые события мыши. Я пробовал обработчики событий, On*
переопределять и переопределять WndProc
в самом пользовательском элементе управления, элементе управления хоста и родительской форме, но, похоже, я не получаю события WM_MOUSEMOVE
, WM_LBUTTONDOWN
или WM_LBUTTONUP
где-нибудь. Per этот отчет об ошибке, я должен получать WM_MOUSEMOVE
в "конструкторе элементов управления"; Я не уверен, к чему это относится в данном случае.
Есть идеи, как я могу реализовать перетаскиваемый разделитель?