First of all use GridViewSelectEventArgs in stead of EventArgs.
Second: Object mismatch between GridView and GridViewRow:
GridView row = GridView1.SelectedRow;
then:
protected void GridView1_SelectedIndexChanged(object sender, GridViewSelectEventArgs e)
{
GridViewRow row = GridView1.Rows[e.NewSelectedIndex];
// or you can do
GridView1.SelectedRow = e.NewSelectedIndex;
and then not forget to set the selectedIndex to -1 if not needed anymore after this call