title: Event to prevent C# DataGridView from changing the current row
body: <p>I would need an event that fires when the current row of a <code>System.Windows.Forms.DataGridView</code> is going to be changed and which allows me to cancel this change, e.g. by setting the Cancel-property of the EventArgs to true.</p>
  
  <p>I know about the <code>CurrentCellChanged</code> (the row has already changed when the event is called) and the <code>RowLeave</code> (no possibility to cancel the leave-operation) events, but neither provide what I would need. I also tried to use the <code>RowValidating</code> event, but this event is also called when the row is just going to be validated (without the intention to leave it), for example when I call <code>&lt;ParentForm&gt;.Validate()</code>, which leads to many confusions.</p>
  
  <p>Is there any other possibility or a clean(er) solution to get the desired behaviour?</p>