Bonjour,

nouveau problème sur mes graphics

j'ai en variables globales un "ArrayList tab" dans lequel sont rangés plusieurs tableaux de "PointF" à dessiner sur mon Image => tab[0] = PointF[], tab[1] = PointF[], ...

cet ArrayList est rempli lors de l'ouverture d'un fichier qui possède ces points dont j'ai besoin par la méthode suivante :

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
private bool OpenFile()
        {
            PointF[] pt = new PointF[2];
 
//ouverture du fichier et traitements afin d'obtenir les points que je souhaite
//
//TabPoints est un tableau contennant le mappage de ma carte(représenté par  un fichier .png en ressource) que j'ai faite
// donc ici, je récupère le point gauche-bas et le point haut-droit
 
            pt[0] = map.searchPointFromLatAndLong(map.TabPoints, longitudeFirst, latitudeFirst);
            pt[1] = map.searchPointFromLatAndLong(map.TabPoints, longitudeLast, latitudeLast);
 
 
 
            ArrayList grp = map.ValeursPressions(map.TabPoints, DataPts, longitudeFirst, latitudeFirst, longitudeLast, latitudeLast, longitudinalIncr, latitudinalIncr);
            pressions.Clear();
 
            for (int i = 0; i < grp.Count; i++)
                pressions.Add((PointF[])map.MinMaxPressionsSurLatitude((GroupPression)grp[i]));
 
            rect = new Rectangle((int)pt[0].X, (int)pt[1].Y, (int)(pt[1].X - pt[0].X), (int)(pt[0].Y - pt[1].Y));
 
//on redessine le graphics
            this.panel1.Invalidate();
            return true;
 
        }
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
private void panel1_Paint(object sender, PaintEventArgs e)
        {
            float tension = (float)0.2;
            Graphics g = e.Graphics;
            Pen aPen = new Pen(Color.Black, (float)1);
            if(ImOri == null)
                ImOri = (Image)(rm.GetObject("map"));
 
            g.SmoothingMode = SmoothingMode.AntiAlias;     // anticrénelage
 
 
            Point ulCorner = new Point(0, 0);
            Point urCorner = new Point(panel1.Width, 0);
            Point llCorner = new Point(0, panel1.Height);
            Point[] destPara = { ulCorner, urCorner, llCorner };
 
            if (rect.IsEmpty)
                g.DrawImage(ImOri, destPara);
            else
                g.DrawImage(ImOri, destPara, rect, GraphicsUnit.Pixel);
 
 
 
            if (tab.Count != 0)
                for (int i = 0; i < tab.Count; i++)
                {
                    g.DrawCurve(aPen, (PointF[])tab[i], tension);
                }
            g.Dispose();
            aPen.Dispose();
            rm.ReleaseAllResources();
        }
il m'affiche bien avant d'ouvrir le fihcier toute ma carte ... lorsque j'ouvre le fichier il me fait un zoom sur l'endroit précisé mais ne m'affiche pas mes tracés de courbes

en passant un point d'arrêt sur la dernière conditionnelle if de la méthode Paint, je remarque qu'il y passe indéfiniment non, car sans le déboguage il m'affiche mon Form mais qu'il y passe au moins une vingtaine de fois (mon tab ne comportant que 17 tableaux de points)

je ne vois pas du tout d'où ça peut venir