Laden...

DataGridView und CellValueChanged nur bei Zellen editieren

Erstellt von nieselfriem vor 8 Jahren Letzter Beitrag vor 8 Jahren 974 Views
N
nieselfriem Themenstarter:in
44 Beiträge seit 2004
vor 8 Jahren
DataGridView und CellValueChanged nur bei Zellen editieren

Hallo,

ich habe eine Art Import-Formular erstellt auf dem zwei DataGridviews enthalten sind. Auf der Rechten Seite ist das Quell-DataGridview was mit der Datenbank gefüllt wird und auf der rechten Seite ein leeres DataGridview (Senke). Dieses kann mit der Auswahl von Zeilen aus dem Quell- DataGridview gefüllt werden. Das alles funktioniert ganz gut.
Nun hat der User die Möglichkeit die Zellen auf der Seite des rechten Seite (Senke) zu bearbeiten. Nun soll es so sein, dass verschiedene Aktionen je nach dem welche der Spalten editiert worden sind ausgelöst werden sollen. Wenn also eine Zelle Spalte 2 editiert wird oder Spalte 3 soll ein Insert in der Datenbank ausgelöst werden sonst soll ein Update ausgelöst werden.
Dazu habe ich die untere Methode implementiert.


        private void matImpDataGridVW_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
         
            if (e.RowIndex >= 0 ) {
                if (e.ColumnIndex == 2 || e.ColumnIndex == 3)  {
                //add in update queue
                    idins.Add(matImpDataGridVW.Rows[e.RowIndex].Cells[1].Value);

                }
                else
                {
                //add in insert queue
                    idup.Add(matImpDataGridVW.Rows[e.RowIndex].Cells[1].Value);
                }
            }
        }

Allerdings habe ich folgendes Problem. Die obige Methode wird auch ausgelöst, wenn ich eine Zeile aus der Quell-Datagridview in die linke Senk-DataGridview bewege. Die Methode soll jedoch erst ausgelöst werden, wenn die Zelle durch den User editiert wird. Wie kann ich das machen?

VG niesel

5.299 Beiträge seit 2008
vor 8 Jahren

Die obige Methode wird auch ausgelöst, wenn ich eine Zeile aus der Quell-Datagridview in die linke Senk-DataGridview bewege. Evtl. machste dann beim bewegen was falsch.
Weil afaik ists nicht zwingend, dass ein Bewegen automatisch ein CellValueChanged auslöst, auch noch im anderen DGV.
Auch verwirrt mich, dass du mal das rechte, mal das linke DGV als "Senke" bezeichnest.

Der frühe Apfel fängt den Wurm.