Comment sélectionner une ligne datagridview sur un clic-droit?Cliquez avec le bouton droit de la souris pour sélectionner une ligne datagridview
Répondre
// Clear all the previously selected rows
foreach (DataGridViewRow row in yourDataGridView.Rows)
{
row.Selected = false;
}
// Get the selected Row
DataGridView.HitTestInfo info = yourDataGridView.HitTest(e.X, e.Y);
// Set as selected
yourDataGridView.Rows[info.RowIndex].Selected = true;
la chose est cool ajouter un menu sur ce clic droit, par exemple avec option comme « Affichage des informations client », « vérifier dernières factures », « Ajouter une entrée de journal à ce client », etc.
vous avez juste besoin d'ajouter un objet ContextMenuStrip, ajoutez vos entrées de menu, et dans les propriétés DataGridView sélectionnez simplement le ContextMenuStrip de celui-ci.
Cela crée un nouveau menu dans la ligne droite l'utilisateur a cliqué avec toutes les options, tout ce que vous devez faire est de rendre votre magie :)
rappelez-vous que vous avez besoin du code JvR pour obtenir ce que la ligne était la utilisateur, puis prenez la cellule qui contient l'ID client par exemple et transmettre cette information.
it helps améliorer votre application
Vous pouvez utiliser le code de JvR en cas MouseDown de votre DataGridView.
le DataGridView
et Sous créer un événement MouseDown
pour le réseau,
private void SubClassedGridView_MouseDown(object sender, MouseEventArgs e)
{
// Sets is so the right-mousedown will select a cell
DataGridView.HitTestInfo hti = this.HitTest(e.X, e.Y);
// Clear all the previously selected rows
this.ClearSelection();
// Set as selected
this.Rows[hti.RowIndex].Selected = true;
}
qu'il se comporte de façon similaire au bouton gauche de la souris? par exemple.
private void dataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
dataGridView.CurrentCell = dataGridView[e.ColumnIndex, e.RowIndex];
}
}
Cela a bien fonctionné pour moi, merci! – Superbeard
Ceci est plus flexible et complet que la réponse de JvR, mais vous devriez ajouter une vérification de 'e.ColumnIndex> = 0 && e.RowIndex> = 0' au cas où l'utilisateur clique avec le bouton droit de la souris sur un en-tête. – Chad
Vous devez faire deux choses:
Effacer toutes les lignes et sélectionner le courant. Je boucle à travers toutes les lignes et utiliser l'expression Bool
i = e.RowIndex
pour cetteSi vous avez fait l'étape 1 vous avez encore un grand écueil:
DataGridView1.CurrentRow ne retourne pas votre ligne précédemment sélectionnée (ce qui est très dangereux). Depuis CurrentRow est Readonly que vous devez faireMe.CurrentCell = Me.Item(e.ColumnIndex, e.RowIndex)
Protected Overrides Sub OnCellMouseDown( ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) MyBase.OnCellMouseDown(e) Select Case e.Button Case Windows.Forms.MouseButtons.Right If Me.Rows(e.RowIndex).Selected = False Then For i As Integer = 0 To Me.RowCount - 1 SetSelectedRowCore(i, i = e.RowIndex) Next End If Me.CurrentCell = Me.Item(e.ColumnIndex, e.RowIndex) End Select End Sub
- 1. wpf listview cliquez avec le bouton droit sur le problème
- 2. Cliquez avec le bouton droit de la souris sur les onglets de feuille désactivés dans Excel
- 3. Glisser-déposer avec le bouton droit de la souris wpf
- 4. Menu personnalisé/Menu contextuel Survolez ou cliquez avec le bouton droit
- 5. Comment détecter le clic droit de la souris tout en appuyant sur le bouton gauche de la souris dans IE?
- 6. Comment empêcher un DataGridView de sélectionner automatiquement une ligne?
- 7. Style un bouton WPF sur le clic droit de la souris
- 8. Une raison d'utiliser Souris cliquez sur vs clavier pour poster?
- 9. Bouton de la souris dans ToolStripMenuItem
- 10. Détection de la souris Cliquez sur une matrice de contrôles
- 11. Javascript: J'ai un menu personnalisé avec le bouton droit de la souris, mais je veux toujours l'orthographe!
- 12. jQuery Append UL avec LI avec une valeur de dropdownlist sur le bouton cliquez sur
- 13. Programatically cliquez et déplacez la souris avec VB.NET
- 14. Ressource de version dans DLL non visible avec le bouton droit
- 15. ActionScript sur la souris Cliquez sur
- 16. Comment sélectionner un objet survolé de la souris avec JQuery?
- 17. Supprimer la ligne DataGridView
- 18. Double-cliquez sur l'élément DataGridView
- 19. erreur ASP.NET sur le bouton cliquez
- 20. Récupérer la ligne d'en-tête pour le contrôle DataGridView
- 21. Une ligne supplémentaire dans DataGridView
- 22. Lier l'événement au clic droit de la souris
- 23. Événements de souris spéciaux dans un navigateur: roue, clic-droit?
- 24. Cliquez pour basculer avec jQuery
- 25. La légende de bouton n'affiche pas DatagridView
- 26. Cliquez sur chaque bouton avec le même ID
- 27. DataGridView: Comment sélectionner la première cellule dans la ligne actuelle lorsque MultiSelect est vrai
- 28. Supprimer la ligne sélectionnée d'un DataGridView
- 29. VB.NET - Cliquez sur le bouton Envoyer sur la page Webbrowser
- 30. Repositionnement de ligne DataGridView
cela devient vraiment lent lorsque le nombre de lignes est élevé ... – karlipoppins
Si votre DataGridView a MultiSelect défini sur false puis effacer la sélection précédente est inutile. En outre, HitTestInfo peut renvoyer HitTestInfo.Nowhere si l'accès n'est pas une ligne/colonne valide. – stuartd
Impossible .ClearSelection aide-t-il à accélérer les choses? – ccalboni