Vb.net 捕获自定义SplitContainerDesigner的鼠标事件
我正在尝试创建一个用户控件,该控件将在自定义IDesignerHost实现中的两个面板之间提供一个可拖动的拆分器,与SplitContainer完全相同。据我所知,SplitContainer本身不是一个选项;除非在VisualStudio的设计器中使用,否则它将引发异常 我的实现看起来大致类似,只是我没有收到必要的鼠标事件。我已经尝试过事件处理程序,Vb.net 捕获自定义SplitContainerDesigner的鼠标事件,vb.net,.net-2.0,splitcontainer,design-surface,Vb.net,.net 2.0,Splitcontainer,Design Surface,我正在尝试创建一个用户控件,该控件将在自定义IDesignerHost实现中的两个面板之间提供一个可拖动的拆分器,与SplitContainer完全相同。据我所知,SplitContainer本身不是一个选项;除非在VisualStudio的设计器中使用,否则它将引发异常 我的实现看起来大致类似,只是我没有收到必要的鼠标事件。我已经尝试过事件处理程序,On*重写和重写用户控件本身、主机控件和父窗体中的WndProc,但我似乎没有在任何地方接收到WM\u MOUSEMOVE、WM\u lbutto
On*
重写和重写用户控件本身、主机控件和父窗体中的WndProc
,但我似乎没有在任何地方接收到WM\u MOUSEMOVE
、WM\u lbuttonown
或WM\u LBUTTONUP
事件。根据,我应该在“控件设计器”中收到WM\u MOUSEMOVE
;我不确定在这种情况下它指的是什么
有没有关于如何实现可拖动拆分器的想法?一旦您知道如何实现,这就很容易了
Designer
属性设置为从ControlDesigner
继承的自定义类OnSetCursor
方法,以便在拆分器区域上分别显示HSplit
或VSplit
光标,确保不要设置控件的游标(这将导致堆栈溢出、崩溃或其他不稳定行为,当然不是您想要的),而是设置cursor.Current
OnMouseDragBegin
、OnMouseDragMove
和OnMouseDragEnd
以调整内部面板的大小