I'm trying to implement an Owner-drawn ListView in my application using the code available at this MSDN article, however I've encountered several issues.

First of all, the double-click event only fires when the mouse is over the text in the first column of any ListViewItem. I'd prefer to keep the manual, timer-based, double-click detection routine as a last resort if possible.

Second, when the ListView is scrolled sideways, clicking an item won't select it anymore.

I'm busting my head over this one but I can't solve either of these problems. Any help would be greatly appreciated.