7
votes

C #: Sélectionnez la ligne de DataGridView

J'ai un formulaire avec dataGridView (de 3 colonnes) et un bouton. Chaque fois que l'utilisateur clique sur un bouton, je souhaite que les valeurs sont stockées dans la 1ère colonne de cette ligne.

Voici le code que j'ai: p>

    private void myButton_Click(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in ProductsGrid.Rows)
        {
            if (this.ProductsGrid.SelectedRows.Count == 1)
            {
             // get information of 1st column from the row
             string value = this.ProductsGrid.SelectedRows[0].Cells[0].ToString();
            }
        }
    }


1 commentaires

Vous n'avez pas besoin de itérer (foreach) sur toutes les lignes du DataGrid pour obtenir uniquement la première sélection de sélection. La boucle de Foreach est une perte de temps ici.


6 Réponses :


1
votes

Sélectionnerie ne renvoie que les lignes si la ligne entière est sélectionnée (vous pouvez activer le RowSelect sur la DataGridView si vous le souhaitez). La meilleure option est d'aller avec sélectionnée de sélection xxx


0 commentaires

1
votes

Eh bien, vous n'avez pas besoin de itérale à la fois sur toutes les lignes de votre réseau et accédez à la collection de la sélection de self. Si vous ignorez itération et utilisez la collection SELECTIONRSROWS, votre problème est probablement une sélection de sélection incorrecte:

La propriété de sélectionMode doit être définie à FullrownesLect ou à ronflerheerselect pour que la propriété sélectionne la propriété soit peuplé avec des lignes sélectionnées.

(de MSDN )


0 commentaires

0
votes

sélectionnérows.count renvoie le nombre de lignes entières actuellement sélectionnées. Vous voulez probablement utiliser sélectionnéCells.count .


0 commentaires

24
votes

Ensemble DataGridView.multiselect = Faux et DataGridView.SelectionMode = FullrowneLect. Cela le rendra pour que l'utilisateur ne puisse sélectionner qu'une seule ligne à la fois.


1 commentaires

J'ai dû utiliser datagridview1.SelectionMode = DataGridViewSelectionMode.fullrowselect;



1
votes

Vous pouvez faire référence à la grille similaire à un tableau:

ProductsGrid.ClearSelection();
ProductsGrid.Rows[e.RowIndex].Selected = true;


0 commentaires

0
votes

Vous pouvez également utiliser le .bounditem


0 commentaires