For your second part
DataGridView
has a
CurrentRow[
^] property. You'll never guess what it returns. :)
I am not sure whether it will solve your problem as, without checking, I do not know if it gets set for a right click. Still check it out, it might do the trick.