2009-12-04 36 views
0

我正在开发一个WinForm 的Windows Mobile 5.0或以上.NET Framework精简版2.0 SP2C#.NET Compact Framework的:控制在控制onmousedown事件问题

我有两个自定义控件(从Control继承的两个类)。如果我点击control1的特定位置,它将显示control2(control2是control1的控件)。换句话说,control2是一个弹出菜单,它显示在control1上。

Control2有两个linklabel。如果用户点击其中的一个,control2会抛出一个事件来通知control1有关用户的选择。

在control1上,我重写了OnMouseDown,OnMouseUP和OnMouseMove。

好的。我在用户点击control2上的linklabel的情况下调试了代码。该事件经过:

  • 在control2上,使用linklabel_click方法。
  • On control1,control2_customEvent method。
  • 而且,这里是我的问题,关于control1, 的OnMouseMove方法和OnMouseUp。

如果我点击control2而不点击链接标签,它也会抛出control1.OnMouseMove和control1.OnMouseUp。

更新:

为什么射击的OnMouseMove和OnMouseUp上控制1如果我点击了控制2

谢谢!

+0

由于您点击了鼠标,它正在点击OnMouseDown。那真的是你要问的吗? – 2009-12-04 16:42:16

+0

不,我想问,为什么在Control1上点击OnMouse事件,如果我点击Control2? – VansFannel 2009-12-04 16:57:16

回答

1

这是正确的。鼠标向下控制2.控制2消失,因此相应的MouseUp在现在可见的控件(Control1)上被调用。

为了避免这种情况,两者都要解决:MouseUp或MouseDown不是这两者的组合。

+0

I_不理解你。我需要在Control1上定义的MouseUp和MouseDown。 – VansFannel 2009-12-04 17:06:24

+0

当你点击一个链接,然后你得到一个鼠标,然后一个鼠标。 问题是,鼠标停止发生在控件2上(点击链接)。控制2然后消失,双手控制回到控制1.然后发生鼠标向上事件。现在,这一切都通过控制数字1来实现。避免这种情况的方法是使所有“操作/提交”事件在鼠标移动或鼠标移动时发生。我喜欢自己动手。尝试重新编写链接以代替使用MouseUp。您可能必须编写自己的链接控件才能执行此操作,因此请先使用按钮并处理MouseUP(不要单击)。 – Quibblesome 2009-12-04 17:55:13

+0

好吧,我已经完成了,它的工作原理!谢谢。 – VansFannel 2009-12-05 05:50:31