Best practice for Weblistbox Right Click Processing

I want to provide options to the user when they right-click on a cell in a weblistbox, and the options I present will pertain to the cell they clicked on.
This is easy with desktop because I can grab RowFromXY, ColumnFromXY - which are unavailable with WE.

The way I currently do this in one app is…

MouseDown event
Check for RightClick - if yes then set a flag (e.g. RightClicked)

CellClick event or SelectionChanged event
Check for RightClicked flag and grab current row (either as Row or as ListIndex), the process accordingly. (and of course reset the RightClicked flag)

My concern is expecting relative timing between CellClick and MouseDown. Can I ALWAYS count on them to happen in the order of MouseDown THEN CellClick?

Is there a BEST/BETTER way to do this?

I’ve handled this a few ways in the past. If you want the menuitems to display where the user clicked or directly over the cell then I place an invisible container control and adjust its position manually to where the user clicked. If you need the menu to have items that are set dynamically based on where the user clicked then you could dynamically create a WebContainer that you can pass a webmenuitem to and have it render at the proper position and show the menu on the Shown event. If you’re not comfortable with dynamically loading containers then you could get creative with timers as well but this adds more load on the server.