DatagridView, Sélectionnez la dernière ligne

J'ai des soucis avec le réglage de la dernière ligne de mon datagridview sélectionné. J'sélectionnez la dernière ligne de cette manière:

if (grid.Rows.Count > 0)
{
    try
    {
        grid.Rows[grid.Rows.Count - 1].Selected = true;
        grid.CurrentCell = grid.Rows[grid.Rows.Count - 1].Cells[1]
    }
    catch (IndexOutOfRangeException)
    { }
    catch (ArgumentOutOfRangeException)
    { }
}

Lorsque j'exécute ce code j'obtiens une exception: IndexOutOfRangeException occurred: Index-1 n'a pas de valeur.

Quand je debug le Rowsde la collecte et de la Cells collection, je vois les deux collections sont remplis. L'index existe également des Lignes et des Cellules de la collection.

Je n'ai aucune idée de ce que je fais de mal ici. Quelqu'un qui peut m'aider ici? Thnx

EDIT:

Ici est l'exception:

System.IndexOutOfRangeException: Index -1 does not have a value.
at System.Windows.Forms.CurrencyManager.get_Item(Int32 index)
at System.Windows.Forms.CurrencyManager.get_Current()
at System.Windows.Forms.DataGridView.DataGridViewDataConnection.OnRowEnter(DataGridViewCellEventArgs e)
at System.Windows.Forms.DataGridView.OnRowEnter(DataGridViewCell& dataGridViewCell, Int32 columnIndex, Int32 rowIndex, Boolean canCreateNewRow, Boolean validationFailureOccurred)
at System.Windows.Forms.DataGridView.SetCurrentCellAddressCore(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick)
at System.Windows.Forms.DataGridView.set_CurrentCell(DataGridViewCell value)
Code semble très bien. Avez-vous essayé de débogage? Sur quelle ligne de code obtenez-vous l'erreur?
Essayez un Rapide Montre pour grid.Rows[grid.Rows.Count - 1].Cells[1] et voir de quoi il en retourne.
la ligne est: grid.CurrentCell = grid.Rows[grid.Rows.Count - 1].Cells[1]
Puis-je obtenir la IndexOutOfRangeException. Quand je fais de la grille.Les lignes[grille.Les lignes.Count - 1].Les cellules.Le comte je reçois 5

OriginalL'auteur Martijn | 2010-09-28