What-ho,
yes, it's possible. Most controls have several mouse events such as MouseDown, MouseUp and MouseMove. From these, you can detect which button is being pressed, released and where the mouse is within the object for which these events have been raised. For instance, if the right mouse button is clicked over a ListBox control, you would use the ListBox_MouseDown(Button,Shift,X,Y) event to detect that a mouse button has been clicked. From this event, you can find which button was pressed, whether the shift key was held down and the x and y coordinates of the mouse pointer within the Listbox when the mouse was clicked. Although there's no MouseIsBeingHeldDown event (as this isn't really an event), you can safely assume that the mouse button is being held down until the MouseUp event is fired for that control.
Hope that helps,
Paul