On listview mouse down event, a textbox is moved to the selected listview item or subitem to be used as the edit box. The trick is to track the scroll bars to deduce which item of the listview is being clicked on. This is done by subclassing listview scroll events and retrieving the scroll bars info with API.