Selection cellules dans datagridview

Résolu

Bonjour à Tous

je reviens vers vous pour solliciter votre aide

dans un datagridview je voudrais empêcher ou du moins mettre un message suivi d'un exit sub :

- si sélection simultanée de plusieurs cellules sur deux ou plusieurs lignes

-si sélection de plusieurs cellules sur toute colonne

Autoriser que la sélection de plusieurs cellules sur la même ligne .

ci dessous quelques capture pour illustrer .

merci de votre aide

une piste : j'ai tenté  ce code ci dessous (en vain ) pour détecter les ColumnIndex et rowindex afin de les comparer et déterminer les plages sélectionnées .

 For Each cell In DataGritable.SelectedCells
            MsgBox("ColumnIndex:   " & cell.ColumnIndex)
            MsgBox("RowIndex:   " & cell.rowIndex)
            

        Next

    End Sub

4 réponses

  1. Bonjour

    il existe une collection SelectedRows et une collection SelectedColumns.

    Tu peux vérifier que seule l'une des 2 compte plus d'un item, dans l'événement SelectionChanged par exemple


    0
    1. le souci c'est que ces collections ( SelectedRows et SelectedColumns) ne fonctionnent qu'avec la propriété sélection mode sur FullRowSelect .

      dans mon projet j'utilise la propriété sélection mode sur CellSelect..

      0
      1. Bonjour

         peut-être à partir de ça

                    Dim r_min = dataGridView1.Rows.Count()
                    Dim r_max = -1
                    For Each macell In dataGridView1.SelectedCells
                        If macell.rowIndex < r_min Then r_min = macell.rowIndex
                        If macell.rowIndex > r_max Then r_max = macell.rowIndex
                    Next
        
                    MessageBox.Show("Nombre de lignes : " + (r_max - r_min + 1).ToString())

        0
        1. Bonjour

          Exactement ce qu'il me faut .

          Un gros gros merci à toi.

          Bon dimanche

          0