web-dev-qa-db-fra.com

Sélection d'une ligne dans DataGridView par programme

Comment sélectionner une plage de lignes particulière dans un DataGridView par programme lors de l'exécution?

90
Nagendra

Non testé, mais je pense que vous pouvez faire ce qui suit:

dataGrid.Rows[index].Selected = true;

ou vous pouvez faire ce qui suit (mais encore une fois: pas testé):

dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
    if(YOUR CONDITION)
       row.Selected = true;
}
104
ChrFin

En Visual Basic, procédez comme suit pour sélectionner une ligne dans un fichier DataGridView; la ligne sélectionnée apparaît avec une couleur en surbrillance, mais notez que la position du curseur ne changera pas:

Grid.Rows(0).Selected = True

Est-ce que cela change la position du curseur:

Grid.CurrentCell = Grid.Rows(0).Cells(0)

La combinaison des lignes ci-dessus positionne le curseur et sélectionne une ligne. C’est la procédure standard pour focaliser et sélectionner une ligne dans un DataGridView:

Grid.CurrentCell = Grid.Rows(0).Cells(0)
Grid.Rows(0).Selected = True
28
Rodrigo T.
DataGridView.Rows
    .OfType<DataGridViewRow>()
     .Where(x => (int)x.Cells["Id"].Value == pId)
     .ToArray<DataGridViewRow>()[0]
     .Selected = true;
11
IM999MaxBonum

Essaye ça:

datagridview.Rows[currentRow].Cells[0];
2
user6314898
 <GridViewName>.ClearSelection(); ----------------------------------------------------1
 foreach(var item in itemList) -------------------------------------------------------2
 {
    rowHandle =<GridViewName>.LocateByValue("UniqueProperty_Name", item.unique_id );--3
    if (rowHandle != GridControl.InvalidRowHandle)------------------------------------4
    {
        <GridViewName>.SelectRow(rowHandle);------------------------------------ -----5
    }
  }
  1. Effacer toutes les sélections précédentes.
  2. Les lignes en boucle devaient être sélectionnées dans votre grille.
  3. Obtenir leurs poignées de lignes de la grille (notez ici que la grille est déjà mise à jour avec les nouvelles lignes)
  4. Vérifier si le descripteur de ligne est valide ou non.
  5. Lorsque la ligne est valide, sélectionnez-la.

Où itemList est la liste des lignes à sélectionner dans la vue en grille.

0
IFlyHigh

Vous pouvez utiliser la méthode Select si vous avez une source de données: http://msdn.Microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx

Ou utilisez linq si vous avez des objets dans votre source de données

0
thekip