【发布时间】:2011-10-07 19:56:09
【问题描述】:
我有一个使用 GDI+ 绘制的自定义用户控件。它是一个透明控件,在父控件之上绘制小形状。
父窗口所做的只是创建控件,给它一个矩形来绘制自己,然后如果用户点击非透明区域,它就会接收事件。
绘图部分工作得很好,但现在我需要做的是尽可能无缝地将所有 MouseMove、MouseClick 等事件转发到父控件,如果这些事件发生在形状之外。
这些形状是使用 GraphicsPath 绘制的,我已经能够使用 GraphicsPath.IsVisible() 检测鼠标位置是否在一个形状上。
我想以一种在父项上需要零或最少额外代码的方式来执行此操作。父级不一定知道 MouseMove 事件是否是从子控件转发的,它应该平等对待它们。
我是否必须 pinvoke/SendMessage() 才能执行此操作?或者有没有更简单的方法使用 .NET 框架?
【问题讨论】:
标签: c# winforms parent mousemove