Когда представление данных изначально связывается с данными, и вы не щелкаете ни по одной строке, ни по какой-либо ячейке, ни по представлению данных, свойство CurrentRow.Index не будет устанавливать «видимую» выбранную строку.Но когда вы пройдете по каждой строке, вы обнаружите, что dgView.Rows [?]. Выбранный имеет значение true или false.Вы можете создать метод с помощью try catch, чтобы перехватить исключение при получении свойства CurrentRow.Index.Попробуйте следующий код.
try
{
MessageBox.Show(dgView1[0,dgView1.CurrentRow.Index].Value.ToString());
}
catch
{
for (int i = 0; i < dgView1.Rows.Count; i++)
{
if (dgView1.Rows[i].Selected)
{
MessageBox.Show(dgView1[0,dgView1.Rows[i].Index].Value.ToString());
return;
}
}
}