.NET CF WinForms 应用在带有触摸屏的 Windows CE5 和 CE7 设备上运行。
我们连接到MouseUp事件而不是Button实现中的Click(因为触摸屏灵敏度存在明显问题)。
我们还在应用程序消息队列上连接了Windows消息过滤器,并根据特定条件(例如,屏幕背光关闭)过滤掉MouseDown
和/或MouseUp
消息。通常会传递消息。
另外需要注意的是 - 应用程序中的所有屏幕都作为控件实现,并永久保存在内存中,只是发送到后台。我们使用OpenNETCF
Button2和Application2。
现在有一个非常奇怪的问题,特定按钮事件处理程序“卡住”:按下按钮时触发事件,如预期,但随后时间间隔后再次触发 - 有时20-30分钟后!
同时会有屏幕交互,用户按下其他按钮,原始屏幕控制和按钮变得不可见,然后突然 - 通常在下一个屏幕上触摸 - 此按钮的相同MouseUp
处理程序被触发再次,然后继续射击。
似乎在屏幕上的同一个特定位置,而不是每个按钮上都有不同的按钮。
这里的主要问题是 - 一个事件(这个特定控件的MouseUp
消息?)如何存储在某个地方,然后再次activated/sent
一段时间后?
控制在时间上是不可见的,所以它可能不是物理触摸。