ho risolto cosi:
Ho creato una variabile pubblica "old_r" nell'ambito del form;
all'interno dell'evento cell_leave valorizzo questa variabile così:
old_r = e.RowIndex
all'interno dell'evento cell_click gestisco il cambio riga in questo modo:
If Me.Salva.Enabled = True And griglia_t.CurrentRow.Index <> CInt(old_r) Then
Dim response As MsgBoxResult
response = MsgBox("Sono presenti dati non ancora salvati." & Chr(13) & _
"Se si sceglie di continuare i dati andranno persi!" & Chr(13) & _
"Vuoi continuare? ", vbInformation + vbYesNo)
If response = MsgBoxResult.No Then
griglia_t.CurrentCell = griglia_t.Rows(old_r).Cells(1)
Exit Sub
End If
End If
Spero possa essere utile a molti.
Ciao