Ошибка выбранной строки в DatagridView - PullRequest
1 голос
/ 08 декабря 2011

Что не так с моим кодом?

this.comboBox1.SelectedIndex = _f3.dataGridView2.SelectedRows[0].Index;

моя таблица данных находится в форме 3, а мой комбинированный список находится в форме 2. КАК я могу реализовать что-то подобное?

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Вместо этого вы объявляете одно общедоступное целое число в 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;

получить выбранный индекс при необходимости.

0 голосов
/ 08 декабря 2011

Измените свойство Modifiers datagridview2 на Public

...