【问题标题】:Trigger MouseMove Event for Specific Number of Time触发特定时间的 MouseMove 事件
【发布时间】:2012-09-11 09:04:40
【问题描述】:

我有一个自定义 CustomToolStripMenuItem,它派生自 ToolStripMenuItem 类。在那个自定义类“CustomToolStripMenuItem”中,我覆盖了 OnPaint()、OnMouseMove() 和 OnMouseDown() 事件。 在这里,我想添加一个矩形以显示在每个子菜单上,以从自定义工具条菜单项中删除该菜单项。当用户将鼠标移动到矩形区域时,它会变回颜色,表明用户想要删除该项目。我通过读取 xml 文件添加这些菜单。

这里的主要问题是,当我将鼠标从一个菜单项快速移动到另一个菜单项时,前一项也显示为选中如何确保当鼠标移动到其他菜单项时,之前的选择应该被删除。

我猜,我需要在特定时间重复鼠标移动事件(xml文件中的总项目),但是我怎样才能用鼠标事件来做到这一点 ??? 有什么帮助吗?

【问题讨论】:

    标签: c# winforms menu


    【解决方案1】:

    如果快速鼠标移动绕过您当前的 MouseMove 事件,您还可以将 MouseLeave 事件与当前事件一起使用!

    【讨论】:

    • 嗯,优雅的想法。但是,如何将 PaintEventArgs 传递给 LeaveEvent。因为,我需要重新填充矩形以显示禁用该项目。但是,在 LeaveEvent 中,我们无法访问 PaintEventArgs。在 LeaveEvent 中获取 PaintEventArgs 的任何技巧?
    • 是的!定义一个 PaintEventArgs 豌豆;并在paint事件处理程序中将e分配给豌豆,然后您可以在LeaveEvent中使用豌豆。如果您只需要 PaintEventArgs 中的图形,那么您可以跳过此解决方案并在需要时使用 CreateGraphics 控制方法:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多