Witam

Jest sobie DataGridView, w ktorym sa wyswietlane dane za pomoca DataTable. Jesli chce wyswietlic nowe dane w DataGridView, za kazdym razem kiedy zostana one tam zaladowane, wtedy DataGridView uruchamia procedure SelectedIndexChanged, co strasznie spowalnia prace programu, poniewaz pod ta procedura jest sporo zadan do wykonania. Co ciekawsze, zauwazylem, ze po kilku zmianach DataSource w dataGridView, na poczatku tylko raz wykonywal procedure SelectedIndexChanged a potem wykonywal je coraz wiecej! (za kazdym razem zwiekszalo sie to o 2). Czyli przy pierwszym zaladowaniu danych tylko raz sie odwolal do SelectedIndexChanged a potem juz 3 razy, 5 razy itd. Dlaczego? Jak to mozna zablokowac chociaz do jednego razu ?

Moze podam przyklad, bo ciezko zrozumiec co tu napisalem:)

private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            zap = "execute baza_menu 1,2";
SqlDataAdapter adapter = new SqlDataAdapter(zap, objConn);
                DataTable asa = new DataTable("tabela");
adapter.Fill(asa);
                this.dataGridView1.DataSource = asa;
}

drugi radioButton wykonuje to samo zapytanie tyle ze z innymi zmiennymi

natomiast w dataGridView1_SelectionChanged mam kod np:

MessageBox.Show("test", "Uwaga", MessageBoxButtons.Ok);

i caly bajer polega na tym ze w momencie kiedy klikne na RB1 wtedy dataGridView1_SelectionChanged jest wywolywany tylko raz, a jak klikne na RB2 wtedy dataGridView1_SelectionChanged jest wywolywany 2 razy pozniej gdy klikne na RB1 to juz 4 razy itd. Dlaczego? z czym to jest zwiazane ?