.NET CF WinForms app runs on Windows CE5 and CE7 devices, with touchscreen.
We hook up to MouseUp event rather than Click in our Button implementation (because of apparent problems with touchscreen sensitivity).
We also hook up a Windows Message filter on application message queue, and filter out MouseDown
and/or MouseUp
messages based on certain conditions (e.g. screen backlight is off). Normally messages are let through.
Another thing to note - all screens in the application are implemented as controls, and kept in memory forever, just sent to the background. We use OpenNETCF
Button2 and Application2.
Now there's a very strange problem, where particular button event handlers get "stuck": event is fired when button is pressed, as expected, but then again after a random time interval - sometimes 20-30 minutes after!
There would be screen interaction in the meanwhile, user presses other buttons, the original screen control and the button become invisible, and then suddenly - typically on next screen touch - the same MouseUp
handler for this button is fired again, and then keeps firing.
It also seems to happen with different buttons in the same, certain position on the screen, not each and every button.
The primary question here is - how on earth can an event (MouseUp
message for this particular control?) get stored somewhere, and then activated/sent
again some time after?
Control is invisible by the time, so it can't be physical touch, presumably.