Comment obtenir le courant rowindex d'un DataGridView?

Je veux que la ligne actuelle dans un DataGridView. Pas par un clic de souris, mais en appuyant sur enter...

Je sais de ce:

datagridview.CurrentCell.RowIndex

et

datagridview.CurrentRow.Index

et

datagridview.SelectedRows[0].Index

...

Mon problème est que généralement cela fonctionne bien, sauf quand j'arrive à la dernière ligne. Parce qu'il obtient toujours l'indice de la dernière rangée.

Une idée de comment cela pourrait se produire? J'ai beaucoup cherché et je n'ai pas vraiment trouvé quelqu'un avec le même problème!!!!

  • Pouvez-vous mettre un peu de code de votre projet/méthode/de l'événement qui vous renvoie ce mauvais indice?
  • c'est la chose qu'elle représente aucun cas vraiment.. Lorsque j'appuie sur entrer, je veux montrer la ligne sélectionnée. Donc, puisque je ne peux pas obtenir par n'importe quel paramètre d'événement j'ai regarder qui datagridview est sélectionné comme je l'ai posté.
  • Vous N'utilisez PAS le cas (par exemple KeyDown) ou vous ne POUVEZ PAS utiliser l'événement?
  • oui, je veux dire-je utiliser un événement. Sens j'ai un win forms, et un datagrid view et puis j'ai un événement clé qui déclenche la chose ensemble, mais il n'y a pas d'information dans le cas des paramètres sur la ligne sélectionnée ou quoi que ce soit.
  • Je pense que vous êtes débutant, alors laissez-moi vous expliquer, - VOUS avez BEAUCOUP D'INFORMATIONS DANS les ÉVÉNEMENTS de PARAMÈTRES!!! S'il vous plaît regardez "expéditeur" de l'objet en mode débogage juste après l'événement est déclenché.
  • Que veut dire: Parce qu'il obtient toujours l'indice de la dernière rangée.?!
  • veuillez fournir le code qui vous donne toujours la bonne ligne
  • En fournissant votre code de l'événement KeyDown ou quelque soit l'événement que vous utilisez pour capturer la touche Entrée serait utile. Aussi - est-ce que votre grille d'exposer la nouvelle ligne de sorte que les utilisateurs peuvent ajouter une nouvelle ligne?
  • Avez-vous peut-être ont AllowUserToAddRows = true, et continuez d'ajouter des lignes..?
  • AllowUserToAddRows est faux!
  • pourquoi la ligne sélectionnée d'un enfant datagridview être dans l'événement KeyPress de l'expéditeur d'un formulaire? Regardes l'objet expéditeur est la première chose que j'ai fait!
  • Je reçois le même indice pour le dernier et l'avant-dernière rangée!
  • Je l'ai fait il suffit de regarder ci-dessus. Il n'y a pas de plus et tout le monde sait comment un événement ressemble
  • Pourriez-vous poster une vraiment simple code pour me montrer ce que tu veux dire par-je obtenir ce même indice pour le dernier et l'avant-dernière rangée! 🙂
  • Vous vous rendez compte qu'en appuyant sur entrée par défaut passe à la ligne suivante, à droite?
  • qui est en fait un bon point de exepté que l'indice est bon pour toutes les autres lignes. Pourquoi serait-ce juste être une erreur à la dernière ligne?
  • Bien dans la dernière rangée, avec AllowUserToAddRows = lase il ne peut pas se déplacer. alors, qui sera certainement à l'origine des différents comportements. Mais ne voyant pas votre code, je ne peux pas dire pour sûr que ce serait la meilleure façon..
  • Je ne sais pas vraiment quel est le code à fournir car il n'y a pas rien sauf ce que j'ai montré.
  • Ainsi, l'événement que vous utilisez, bien sûr. Est-il pression sur une Touche, ou KeyDown ou quoi? Voici la façon dont je le manipuler: private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == 13) { e.Handled = true; Console.WriteLine(dataGridView1.CurrentRow + ""); }
  • désolé! Le dernier commentaire que vous avez écrit, fait le tour! Merci! Si vous mettez comme une réponse à des Mauvais soumettre

InformationsquelleAutor joohaha | 2016-04-20