IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.Net] Masquer les lignes dans un DataGridView


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 65
    Points : 43
    Points
    43
    Par défaut [VB.Net] Masquer les lignes dans un DataGridView
    bonjour tout le monde ,
    j'aimerai masquer tout les lignes sélectionnés dans ma datagrid
    dans j'ai essayé avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      Try
     
                Dim dgvRow As DataGridViewRow
     
     
                For Each dgvRow In DataGridView1.SelectedRows
                    DataGridView1.Rows(dgvRow.Index).Visible = False
                Next
     
     
     
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Erreure !")
            End Try

    cela ne fonctionne pas il m'affiche le message :

    ---------------------------
    Erreure !
    ---------------------------
    Impossible de rendre invisible la ligne associée à la position du gestionnaire de devise.
    ---------------------------
    OK
    ---------------------------
    quelqu'un a une solution ? Merci d'avance .

  2. #2
    Membre actif Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Points : 279
    Points
    279
    Par défaut
    Bonjour.

    Premièrement, pense à définir le mode de sélection dans ton datagrid view à "fullRowSelect" dans les options. Ensuite il faut bien dire dans ton parcours que c'est un objet "Row" qui est retourné par le "as DatagridViewRow" comme dans mon code ci-dessous.

    Voici le test que j'ai effectué chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub b_masque_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_masque.Click
    'MsgBox(dgv_test.SelectedRows.Count)
    For Each ligneSelectionne As DataGridViewRow In dgv_test.SelectedRows
    dgv_test.Rows(ligneSelectionne.Index).Visible = False
    Next
    End Sub
    En espérant que cela t'oriente un peu.

  3. #3
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut masquer lignes datagridview
    bonjour xweb-10
    il n'est pas possible de rendre des lignes d'un datagridview lie à une source de donnees invisibles (cela est valable pour la majorite des controles liees).
    neamoins voici un detour.
    c'est d'avoir une prop dans la source de donnees (table ,liste ou autre dictionary ) de type boolean (visible=true,visible=false).
    pour le dgv cela devient simple car on peut utiliser dataview comme filtre.
    voici un exemple d'une table ou existe un champ intitule "visible" de type boolean.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    Public Class frmSelectionDGV
        'Le dataview lie au dataset et au datable
        Private filterView As DataView = New DataView
        Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            'fill de la datable
            Me.Personnel1TableAdapter1.Fill(Me.PersonnelDataSet1.Personnel1)
     
            Me.dgView.SelectionMode = DataGridViewSelectionMode.FullRowSelect
            Me.dgView.AllowUserToAddRows = True
     
            'liaison à datasource DS et au datatable DT
            filterView = New DataView(Me.PersonnelDataSet1.Personnel1)
     
            'filtre sur tous les enregistrements visibles par defaut
            filterView.RowFilter = "visible = 'True'"
            Me.dgView.DataSource = filterView
        End Sub
        'met le champ "visible" à false (le dgv est binde à la table et par consequent c'est repercute dans le datable)
        Private Sub btnSelectionInvisible_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectionInvisible.Click
            For Each dgv As DataGridViewRow In Me.dgView.SelectedRows
                Me.dgView.Rows(dgv.Index).Cells.Item(6).Value = False
            Next
            'rafraichit dgv
            Me.dgView.DataSource = filterView
        End Sub
        'parcours du datable et remise du champ "visible" à true
        Private Sub btnSelectionVisible_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectionVisible.Click
            For Each dt As DataRow In Me.PersonnelDataSet1.Personnel1.Rows
                If dt.Item("visible") = False Then
                    dt.Item("visible") = True
                End If
            Next
            'rafraichit dgv
            Me.dgView.DataSource = filterView
     
        End Sub
    End Class
    bon code....

Discussions similaires

  1. [2K8] Masquer les lignes à 0 dans XLS
    Par tiboleo dans le forum SSAS
    Réponses: 1
    Dernier message: 20/08/2010, 16h39
  2. VB.Net - Comment détecter les modifications dans un Datagridview
    Par novice123 dans le forum Windows Forms
    Réponses: 17
    Dernier message: 19/12/2008, 16h57
  3. masquer les lignes dans une zone si une cellule de la ligne est vide
    Par keguira dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2006, 18h21
  4. Réponses: 2
    Dernier message: 15/09/2006, 12h18
  5. [VB.NET]Comment supprimer les lignes d'un datagridView
    Par vijeo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/09/2006, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo