Benutzer mit den meisten Antworten
DataGridView_RowEnter Event wird zwei mal aufgerufen

Frage
-
Hallo Experten,
bei mir wird DataGridView_RowEnter(....) immer zwei mal aufgerufen wenn ich BindingSource.DataSource zuweise.
var fallklients = context.FallKlients .Where(f => f.FallID == fallid) .ToList(); fallKlientBindingSource.DataSource = fallklients;
Was könnten die Ursache sein? Es passiert nur beim Zuweisen des DataSource. Nachher funktioniert RowEnter() korrekt wenn die Zeile gewechselt wird. RowEnter(...) ist der einzige Event den ich in diesem DataGridView verwende. Was könnte die Ursache sein?
Viele Grüße
Siegfried
- Bearbeitet Siegfried Reichmann Mittwoch, 8. Juni 2016 08:26
Antworten
-
Hallo Siegfried,
ich glaube, dass das Ereignis sogar drei mal gefeuert wird :-)
Du kannst dem aber entgegenwirken, indem du vorher abfragst, ob auch tatsächlich Zeilen markiert wurden.
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) { if (((DataGridView)sender).SelectedRows.Count > 0) { MessageBox.Show("Row Enter"); } }
Dann wird das Ereignis auch nur abgefeuert, wenn der User eine Zeile - keine Zelle - markiert!
- Bearbeitet David Stania Mittwoch, 8. Juni 2016 15:39
- Als Antwort markiert Siegfried Reichmann Donnerstag, 9. Juni 2016 12:58
Alle Antworten
-
Hallo Siegfried,
ich glaube, dass das Ereignis sogar drei mal gefeuert wird :-)
Du kannst dem aber entgegenwirken, indem du vorher abfragst, ob auch tatsächlich Zeilen markiert wurden.
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) { if (((DataGridView)sender).SelectedRows.Count > 0) { MessageBox.Show("Row Enter"); } }
Dann wird das Ereignis auch nur abgefeuert, wenn der User eine Zeile - keine Zelle - markiert!
- Bearbeitet David Stania Mittwoch, 8. Juni 2016 15:39
- Als Antwort markiert Siegfried Reichmann Donnerstag, 9. Juni 2016 12:58
-
Hallo David,
vielen Dank für die Info, habe das eingebaut. Leider wird RowEnter beim Laden nie mit einer selected row != 0 aufgerufen obwohl die erste Zeile (Index 0) markiert ist. Ich rufe deshalb die Prozedur, die ich im RowEnter ausführe einmal manuall nach dem zuweisen des Datasource auf, damit funktioniert es.
Viele Grüße
Siegfried