CurrentCell in DataGridView ändern



  • Guten Abend zusammen,

    in der DataGridView (WinForms) sollte der User über die Tab-Taste in einer bestimmten Zeile immmer nur eine Zeile weiter springen in eine DataGridViewTextBoxColumn (nicht in die nächste Zelle).

    Dafür habe ich folgendes versucht

    public class DataGridViewTab : DataGridView
            {           
                protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
                {
                    //if (keyData == Keys.Tab)
                    //{
                    //    return true;
                    //}
                    if (this.CurrentCell is DataGridViewTextBoxCell)
                    {
                        int iIndex = this.CurrentCell.RowIndex +1;
                        DataGridView dg = new DataGridView();
    
                        this.CurrentCell = dg[5, iIndex];
                        return true;
                    }
    
                    return base.ProcessCmdKey(ref msg, keyData);
                }
    }
    

    Leider erhalte ich hier die Fehelermeldung IndexOutOfRange.

    Wie kann ich es umsetzten, dass mit TAB quasi immer der RowIndex um 1 erhöht wird, der Focus aber immer in der selben Spalte bleibt?? 😕


Anmelden zum Antworten