Figer un graphique un peu trop éphémère...(Résolu)

Figer un graphique un peu trop éphémère...(Résolu) - VB/VBA/VBS - Programmation

Marsh Posté le 11-01-2006 à 22:01:07    

Bonjour,
 
je débute en VB .net et je voudrais afficher un graphique dans un PictureBox à partir de niveau de tensions, temps, courant d'un appareil que je mesure par un port USB.
 
Une fois les valeurs acquises je crée l'objet suivant pour tracer le graphique :  
 

Code :
  1. Dim AcqGraph As Graphics
  2. Private Sub graph_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
  3.         AcqGraph = GraphPanel.CreateGraphics
  4. End Sub


 
GraphPanel étant mon picturebox
 
et je trace mon graphque avec ceci :
 

Code :
  1. Dim i, x, y, x1, y1, decalX, decalY As Single
  2. Dim trace As New Pen(Color.BlueViolet, 1)   'Le 1 signifie 1 pixel de large
  3. 'Début
  4. decalX = 0
  5. decalY = 110
  6. x1 = 0 + decalX
  7. y1 = 0 + decalY
  8. 'Trace le graphe
  9.                 For i = 0 To ValMax
  10.                     x = AcqValueX(i)
  11.                     y = AcqValueY(i)
  12.                     trace.Color = ChannelColor(ChanNum)
  13.                     AcqGraph.DrawLine(trace, x1, y1, (x + decalX), (y + decalY))
  14.                     'Anciennes valeurs sauvées dans x1 et y1
  15.                     x1 = x + decalX
  16.                     y1 = y + decalY
  17.                 Next


 
Mon graphe s'affiche très bien, mais dès lors que je bouge la fenêtre, alors le graphe s'efface  :(  
 
Est-ce que vous pourriez m'expliquer comment "figer" le graphe, afin qu'il ne disparaisse pas dès qu'on l'on bouge la fenêtre..
 
Merci d'avance.
 
Gilbert.


Message édité par abaddon2002 le 11-01-2006 à 22:38:25
Reply

Marsh Posté le 11-01-2006 à 22:01:07   

Reply

Marsh Posté le 11-01-2006 à 22:36:00    

j'ai trouvé.
 
Il fallait simplement que je modifie :
 

Code :
  1. Dim AcqGraph As Graphics
  2. Private Sub graph_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
  3.         AcqGraph = GraphPanel.CreateGraphics
  4. End Sub


 
en cela :
 

Code :
  1. Dim AcqGraph As Graphics
  2. Private Sub graph_Load(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
  3.         AcqGraph = GraphPanel.CreateGraphics
  4. End Sub


Message édité par abaddon2002 le 11-01-2006 à 22:36:38
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed