none
DataGridView_RowEnter Event wird zwei mal aufgerufen RRS feed

  • 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



    Mittwoch, 8. Juni 2016 08:24

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!


    Mittwoch, 8. Juni 2016 15:39

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!


    Mittwoch, 8. Juni 2016 15:39
  • 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

    Donnerstag, 9. Juni 2016 12:58