A number of questions are asked on the MSDN Smart Device forums regarding implementing functionality that does not naturally exist in the Compact Framework. I recommend a technique called SubClassing which Alex Yahknin has blogged about here.
In addition to the source code provided by Alex, I thought it may be worth while putting together a step by step guide as to how to discover the windows messages that a window can receive as this is useful when implementing the subclassing technique. Visual Studio ships with a remote tool call Remote Spy which can be used to discover these windows messages.
I have created these instructions at the following link http://www.smartmobiledevice.co.uk/HowTo/DiscoverWindowsMessages. Hopefully others will find them useful.