Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 捕获自定义SplitContainerDesigner的鼠标事件_Vb.net_.net 2.0_Splitcontainer_Design Surface - Fatal编程技术网

Vb.net 捕获自定义SplitContainerDesigner的鼠标事件

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

我正在尝试创建一个用户控件,该控件将在自定义IDesignerHost实现中的两个面板之间提供一个可拖动的拆分器,与SplitContainer完全相同。据我所知,SplitContainer本身不是一个选项;除非在VisualStudio的设计器中使用,否则它将引发异常

我的实现看起来大致类似,只是我没有收到必要的鼠标事件。我已经尝试过事件处理程序,
On*
重写和重写用户控件本身、主机控件和父窗体中的
WndProc
,但我似乎没有在任何地方接收到
WM\u MOUSEMOVE
WM\u lbuttonown
WM\u LBUTTONUP
事件。根据,我应该在“控件设计器”中收到
WM\u MOUSEMOVE
;我不确定在这种情况下它指的是什么


有没有关于如何实现可拖动拆分器的想法?

一旦您知道如何实现,这就很容易了

  • 将控件上的
    Designer
    属性设置为从
    ControlDesigner
    继承的自定义类
  • 覆盖
    OnSetCursor
    方法,以便在拆分器区域上分别显示
    HSplit
    VSplit
    光标,确保不要设置控件的游标(这将导致堆栈溢出、崩溃或其他不稳定行为,当然不是您想要的),而是设置
    cursor.Current
  • 覆盖
    OnMouseDragBegin
    OnMouseDragMove
    OnMouseDragEnd
    以调整内部面板的大小