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 :

méthode lecture datagridview


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 33
    Par défaut méthode lecture datagridview
    Bonjour,

    Est il possible de lire d'un seul coup un datagridview ? (au lieu de boucler...)
    en fait mon je souhaiterais tracer un graph (avec Chart) avec les données du dataGridView qui evolue dans le temps.

    Exemple de code :
    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
     
            'Test pour alimenter le datagridview
            For i As Integer = 1 To 10
                With Me.DataGridView1
                    .ColumnCount = 2
                    .Columns(0).Name = "x"
                    .Columns(1).Name = "y"
                    .Rows.Add(10 + i, 50 + i)
                End With
            Next
     
            'Lier le chart  au DgV :
            Me.Chart1.DataSource = Me.DataGridView1 ' --> ici je bloque
            Me.Chart1.Series(0).YValueMembers = "y"
            Me.Chart1.DataBind()
    MErci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    peut être un début de piste, récupérer les données du Dgv dans une DataTable que l'on lie au Chart ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim dt As New DataTable()
            dt.Columns.Add("x", GetType(Integer))
            dt.Columns.Add("y", GetType(Integer))
     
            For Each dgvR As DataGridViewRow In DataGridView1.Rows
                dt.Rows.Add(dgvR.Cells(0).Value, dgvR.Cells(1).Value)
            Next
            Me.Chart1.DataSource = dt

  3. #3
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 33
    Par défaut
    Merci pour ta réponse je me suis servi de ta boucle.

    du coup je stocke mes coordonées avec le for each....

    j'ai la fonction update qui met a jour a chaque ajout de donnée, et la fonction FillWithDataGridView qui remplit une fois le dataGridview plein.
    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
     
    Imports System.Windows.Forms.DataVisualization.Charting
    Public Class GraphUpdate
        Const emptyRowsInDGV As Integer = 2
        Public Structure coordonnees
            Dim xValue() As Double
            Dim yValue() As Double
            Public Sub Initialize()
                Dim myForm As Form2
                myForm = Form2
                ReDim xValue(myForm.DataGridView1.Rows.Count - emptyRowsInDGV)
                ReDim yValue(myForm.DataGridView1.Rows.Count - emptyRowsInDGV)
            End Sub
        End Structure
     
        Public Function UpdateGraph(ByVal serieName As String)
            Dim myForm As Form2
            myForm = Form2
            With myForm
                .Chart1.Series(serieName).Points.AddXY(CDbl(Val(.DataGridView1.Item(0, .DataGridView1.RowCount - emptyRowsInDGV).Value)), CDbl(Val(.DataGridView1.Item(1, .DataGridView1.RowCount - emptyRowsInDGV).Value)))
            End With
     
        End Function
        Public Function FillWithDataGridView(ByVal serieName As String)
            Dim myForm As Form2
            myForm = Form2
            Dim donneesGraph As coordonnees
            donneesGraph.Initialize()
     
            For Each row As DataGridViewRow In myForm.DataGridView1.Rows
                If Not row.IsNewRow Then
                    If row.Cells(0).Value.ToString <> "" Then
                        donneesGraph.xValue(row.Index) = CDbl(row.Cells(0).Value.ToString)
                        donneesGraph.yValue(row.Index) = CDbl(row.Cells(1).Value.ToString)
                    End If
                End If
            Next
            myForm.Chart1.Series(serieName).ChartType = SeriesChartType.FastLine
            myForm.Chart1.Series(serieName).Points.DataBindXY(donneesGraph.xValue, donneesGraph.yValue)
     
        End Function
    end class
    et j'apelle pour pour tester comme ca :
    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
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim oGraphique As New GraphUpdate
            Dim serieName As String = "courbe1"
            Me.DataGridView1.Rows.Clear()
            For i As Integer = 1 To 10000
                With Me.DataGridView1
                    .ColumnCount = 2
                    .Columns(0).Name = "x"
                    .Columns(1).Name = serieName
                    .Rows.Add(10 + i, 50 + i)
                    'oGraphique.UpdateGraph()
                End With
            Next
            oGraphique.FillWithDataGridView(serieName)
        End Sub

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

Discussions similaires

  1. Problème boucle lecture DatagridView
    Par Saten dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/10/2008, 14h06
  2. Méthodes de lecture d'un fichier xml
    Par habibdu70 dans le forum C#
    Réponses: 1
    Dernier message: 01/02/2007, 13h25
  3. [C#] méthodes pour filtrer un datagridview ?
    Par tikam dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/08/2006, 12h24
  4. Réponses: 10
    Dernier message: 21/03/2006, 00h16
  5. méthode de lecture d'un fichier dans un buffer
    Par Mestoph dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/02/2006, 10h07

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