Bonjour à tous, je suis débutant en C# et pour le moment j'ai créé un petit programme qui me permet de tracer un graphique (des impulsions) et ensuite de déplacer mes segments de façons verticale pour selectionner l'amplitude voulu. Et voilà mon probléme est que pour faire tout cela j'utilise un tableau un je définis mes valeurs de segments au départ et ensuite les changes au fur et à mesure de mes déplacements mais je fais cela dans mon programme principal sans utiliser de classe or mon parton aimerais que je face mon tableau dans une classe et que je puisse lire et écrire la valeur de mes segments. Quelqu'un pourrait m'aider ou m'indiquer ou trouver de bon tutoriaux pour faire cela car je ne vois pas comment faire ma classe

voici mon programme principal:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace final_graphic
{
    public partial class Form1 : Form
    {
        uint mouse_X ;
        uint mouse_Y ;
 
        int SegSelected = -1;
 
        public Segment[] SegmentArray;
 
        public Form1()
        {
            InitializeComponent();
 
            SegmentArray = new Segment[5];
            for (int i = 0; i < SegmentArray.Length; i++)
            {
                SegmentArray[i] = new Segment(1, 1);
            }
 
            SegmentArray[0].H = 20;
            SegmentArray[0].L = 50;
            SegmentArray[1].H = 50;
            SegmentArray[1].L = 50;
            SegmentArray[2].H = 90;
            SegmentArray[2].L = 50;
            SegmentArray[3].H = 70;
            SegmentArray[3].L = 50;
            SegmentArray[4].H = 30;
            SegmentArray[4].L = 50;
 
        }
 
//********************* creation of the rectangle ********************//
        private void draw_background(Graphics g)
        {
            Pen BorderPen = new Pen(Color.Black, 2);
 
            Pen MiddlePen = new Pen(Color.Gray, 1);
            MiddlePen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
 
            g.DrawRectangle(BorderPen, 10, 10, 400, 300);
 
            g.DrawLine(MiddlePen, 10, 160, 410, 160);
        }
//********************************************************************//
 
//***************** creation of graph with segment ********************//
        private void draw_segment(Graphics g, Segment[] list)
        {
            uint start_X = 10;
            uint start_Y = 10;
 
            uint prev_Y = list[0].H + start_Y;
            uint prev_X = list[0].L + start_X;
 
            Pen SegPen = new Pen(Color.Black, 1);
            Pen SegSelectedPen = new Pen(Color.Pink, 1);
 
            for (int i = 0; i < list.Length; i++)
            {
                g.DrawLine(SegPen, start_X, prev_Y, start_X, start_Y + list[i].H); // vertical connection lines
                if (i == SegSelected)
                {
                    g.DrawLine(SegSelectedPen, start_X, start_Y + list[i].H, start_X + list[i].L, start_Y + list[i].H);
                }
                else
                {
                    g.DrawLine(SegPen, start_X, start_Y + list[i].H, start_X + list[i].L, start_Y + list[i].H);
                }
                start_X += list[i].L;
                prev_Y = start_Y + list[i].H;
                prev_X = start_X + list[i].L;
            }
        }
//*********************************************************************//
 
//*********************** find the nearest segment ********************//
        private void find_nearest_segment(int X, int Y)
        {
            uint start_X = 10;
 
            if ((X < 10) || (X > 390) || (Y < 20) || (Y > 300))
            {
                SegSelected = -1;
                return;
            }
            int i = 0;
            while (i < SegmentArray.Length)
            {
                if (X < start_X + SegmentArray[i].L)
                {
                    SegSelected = i;
                    return;
                }
                start_X += SegmentArray[i].L;
                i++;
            }
        }
//*********************************************************************//
 
//*************** call all function for drawing grpah *****************//
        protected override void OnPaint(PaintEventArgs e)
        {
            draw_background(e.Graphics);
            draw_segment(e.Graphics, SegmentArray);
        }
//*********************************************************************//
 
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            mouse_X = (uint)e.X;
            mouse_Y = (uint)e.Y;
 
            find_nearest_segment(e.X, e.Y);
 
            if (e.Button == MouseButtons.Left)
            {
                if (SegSelected != -1)
                {
                    SegmentArray[SegSelected].H = mouse_Y-10;
                }
            }
            Invalidate();
        }
 
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                if (SegSelected != -1)
                {
                    SegmentArray[SegSelected].H = mouse_Y - 10;
                }
             }
            Invalidate();
        }
    }
}
et ma classe pour segment
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
using System;
using System.Collections;
using System.Linq;
using System.Text;
 
namespace final_graphic
{
    public class Segment
    {
        public uint H;
        public uint L;
 
        public Segment(uint H0, uint L0)
        {
            H = H0;
            L = L0;
        }
    }
}