Вместо этого вы объявляете одно общедоступное целое число в form2, и когда вы хотите получить индекс выбранной строки для сетки данных, вы можете использовать свойство CurrentRowIndex , чтобы получить индекс выбранной строки таблицы данных, как в form3 вы получаете глобальный переменный selectedindex из form2 и назначаете CurrentRowIndex или объявляете открытый метод, который должен возвращать индекс выбранной строки, когда это необходимо
В форме2 вы пишете что-то вроде
private int selectedindex {get; set;}
selectedindex = _f3.GetSelectedIndex();
this.comboBox1.SelectedIndex = selectedindex;
В форме 3 вы пишете метод как
public int GetSelectedIndex()
{
int selectedIndex = 0;
try
{
if(dataGridView2.SelectedRows.Count > 0)
{
selectedIndex = dataGridView2.CurrentRow.Index;
}
}
catch
{
return 0;
}
return selectedIndex;
}
EDIT:
Вы можете использовать вместо
dataGridview2.CurrentRow.Index
В форме 3 под событием SelectionChanged представления данных сетки вы делаете следующее:
private void dataGridView2_SelectionChanged(object sender, EventArgs e)
{
selectedindex = dataGridView2.CurrentRow.Index;
}
, а также объявить selectedindex как целое число как открытую переменную, такую как
public int selectedindex {get; set;}
и в form2 напрямую получают selectedindex с помощью глобальной переменной, как показано ниже,
this.comboBox1.SelectedIndex = _f3.selectedindex;
получить выбранный индекс при необходимости.