鼠标的事件比如 OnMouseClick 、OnMouseLeave、OnMouseDown等等在MSDN上有下面的注释:
This event supports the .NET Framework infrastructure and is not intended to be used directly from your code
在代码里overides了 下面的函数,调试发现事件并没有进入到相对应的方法里面来!



这里的OnMouseClick 没有进入执行,实际上去执行操作系统的方法了。如何才能执行这个方法而不是去执行操作系统的方法呢?

Onpaint事件如果不执行可以通过下列的方法来变相实现:
通过 Overrides Sub WndProc 可以 捕捉消息变相实现 onpaint方法










但是鼠标的丰富事件消息在这里面是同一个ID,所以无法区分是哪个鼠标事件。
后来在查看ControlStyles 的是否发现里面有 ControlStyles.UserMouse 、ControlStyles.StandardClick
做了如下设置后,鼠标事件终于进入到上面的方法离去了
Me.SetStyle(ControlStyles.UserMouse, True)
Me.SetStyle(ControlStyles.StandardClick, True)
以前提到的 OnMouseClick就执行到了。