DataGridView Zeile verschieben



  • Guten Tag!

    Durch einen Button-Click (Up/Down) können Zeilen im Datagridview verschoben werden.
    Einmalig klappt das auch gut, nur sobald ein zweites Mal hintereinander der Up oder Down-Button geklickt wird (OHNE zuvor wieder eine Zeile im Grid anzuklicken) wird nichts mehr verschoben bzw.

    grid.CurrentCell.RowIndex
    

    gibt null zurück. 😕

    void indexUp(DataGridView dg)
            {
                DataGridView grid = dg;
                try
                {
                    int idx = grid.SelectedCells[0].OwningRow.Index;
                    if (idx == 0)
                        return;
    
                    if (idx >= 1)
                    {
                        int idUeberIdx = Convert.ToInt32(grid[0, grid.CurrentCell.RowIndex - 1].Value); // hier tritt beim erneuten klick null auf.
                        // Update in DB.
    
                        int idIdx = Convert.ToInt32(grid[0, grid.CurrentCell.RowIndex].Value);
                        // Update in DB.
    
                        GridNeuLaden();
    
                        grid.ClearSelection();
                        grid.Rows[idx - 1].Selected = true;
    
                    }
                }
                catch { }
            }
    

    Die richtige Zeile bleibt zwar markiert, dennoch ist der Wert null.
    Wie kann ich die Selection anderst/richtig zuweisen?
    Danke für Eure Hilfe!



  • Kannst mal das noch einfügen:

    grid.CurrentCell = grid.Rows[idx-1].Cells[0];
    


  • Perfekt, danke! 👍


Anmelden zum Antworten