Gracias por la respuesta.
Los datos los estoy validando en dos eventos del datagrid.
El primero es dataerror.
-         If TypeOf (e.Exception) Is ConstraintException Then 
-             MsgBox("El producto introducido ya existe") 
-             e.Cancel = True 
-         End If 
-   
Y el segundo es RowValidating
- If PRODUCTODataGridView(2, e.RowIndex).Value Is DBNull.Value Then 
-             MsgBox("Debe introducir un nombre del producto") 
-             e.Cancel = True 
- End If 
-   
Es correcta esta forma?
Por ultimo, al dar el botón nuevo del bindingnavigator se produce el evento BindingNavigatorAddNewItem, cual es el evento que salta cuando la fila ya está insertada? El problema es que al añadir una fila nueva que solamente tiene un campo ya que el campo clave está oculto, no me pone el cursor en el campo sino me lo selecciona en azul. 
He visto que con PRODUCTODataGridView.BeginEdit(True) pero no estoy seguro donde tiene que ir ya que no encuentro el evento que se produce cuando se ha añadido un registro nuevo.
Un saludo.