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

VB.NET Discussion :

Datagridview et backgroundworker


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut Datagridview et backgroundworker
    Bonjour,

    je cherche le moyen d'ajouter une ligne à un DGV venant d'un background worker

    je sais comment modifier une ligne de textbox en multi-thread et je me dit que je peux surment ajouter un ligne dans un dgv mais j'aurais besoin d'un exemple pour me donner une idée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
            For i As Integer = 0 To ArLiSymb.Count
               'Ajouter une ligne au DGV
               DGVessai.Rows.Add(ArLiSymb.Item(i).ToString)
            Next
     
        End Sub

    merci de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Mario Rousson Voir le message
    je sais comment modifier une ligne de textbox en multi-thread et je me dit que je peux surment ajouter un ligne dans un dgv mais j'aurais besoin d'un exemple pour me donner une idée.
    Bah le principe est le même... il faut passer par la méthode Invoke. Par contre, je ne vois pas du tout l'intérêt de faire ça dans ton cas : si toute ta méthode consiste à ajouter des lignes au DataGridView, ça n'a aucun intérêt de le faire dans un autre thread, puisqu'au final tu dois revenir sur le thread de l'UI pour ajouter les lignes.

    Peut-être que ta "vraie" méthode fait un peu plus que ça ? Dans ce cas, essaie de bien séparer les choses qui peuvent se faire indépendamment de l'interface graphique, et celles qui touchent à l'interface graphique. Pour ces dernières, fais les plutôt dans l'évènement RunWorkerCompleted et/ou ProgressChanged (ces évènements s'exécutent sur le thread de l'UI, donc pas de problème)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    Cool merci ça marche

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    Pour ajouter une ligne de donner à mon DGV ai-je la bonne façon ??

    j'envoi le msg comme un string et je le décompose par un split pour l'enregistrer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub DelDGVESSAI(ByVal msg As String)
            'Control.InvokeRequired = False <=>Appel normal du Form
            If Not DGVCote.InvokeRequired Then
                Dim It() As String = msg.Split(",")
                DGVCote.Rows.Add(It(0), It(1), It(2), It(3), It(4), It(5), It(6), It(7), It(8), It(9), It(10), It(11), It(12), It(13), It(14), It(15))
            Else
                'non Appel à delegue de Maniere Asynchrone (BeginInvoke) 
                DelRecDGVEssai = New UIOneArgSub(AddressOf DelDGVESSAI)
                Me.BeginInvoke(DelRecDGVEssai, New Object() {msg})
            End If

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Mario Rousson Voir le message
    Pour ajouter une ligne de donner à mon DGV ai-je la bonne façon ??
    C'est une façon de faire... est-ce que c'est la meilleure ? Perso je suis pas fan de manipuler directement le contenu du DataGridView, je préfère passer par le data binding. Mais si ça marche, ma foi, y a pas forcément besoin de chercher plus loin

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    merci j'en prend note

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [c#] datagridview - trouver postion de la selection
    Par zeroox dans le forum Windows Forms
    Réponses: 7
    Dernier message: 15/04/2009, 12h48
  2. [C#] DataGridView et BackgroundWorker
    Par raptor1 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/09/2007, 15h40
  3. Probleme d'affichage avec un DataGridView
    Par kekesilo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/01/2007, 14h12
  4. [VS2005][VB.Net] Custom Format dans un DataGridView
    Par Vonotar dans le forum VB.NET
    Réponses: 10
    Dernier message: 22/11/2005, 08h15

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