views:

293

answers:

4

My WinForms app uses the mouse wheel, subscribing to the Control.MouseWheel event. How can I get it to work with scrolling methods from other input devices, in particular "finger along the edge" scrolling on the (Synaptics) trackpad on my T61? I assume that I need to wire up the trackpad messages to the Control.MouseWheel event somehow, but I have no idea where to start...

EDIT: This is currently not working; so my trackpad is evidently not sending Control.MouseWheel messages.

Thanks!

(I am using C#, but this is surely .Net general).

A: 

In general, the scrolling action on a trackpad simply sends the same signals to the PC as the scroll wheel on a mouse so your current implementation should work.

AdamRalph
They should send mouse wheel messages, but Synaptics drivers do not. They actually look for native Windows scroll bars and manipulate them. And Synaptics touch pads seem to be the most widely used.
Jordan Miner
A: 

As a brief note: manuals for developers can be found here, but seem to offer no straightforward answer to the question.

Joel in Gö
A: 

I've got this same problem (also using C#). No MouseWheel event is triggered when the trackpad's scrollers (for lack of a better term) are used. This post is the only lead I've found after some fairly extensive searching.

Sorry I've got nothing to add, but I think this post deserves bumping.

+1  A: 

The Lenovo drivers don't work the way that you'd hope. There's a workaround, posted here: http://blogs.msdn.com/b/markrideout/archive/2006/01/12/datagridview-mouse-scrolling-button-with-ibm-ultranav-driver.aspx which involves tricking the mouse driver into recognizing that you want scroll messages.

EricLaw -MSFT-
Thanks, finally a solution!
Joel in Gö