Не сохраняются значение в список List<> - C#

Узнай цену своей работы

Формулировка задачи:

Ситуация такая: Нужна программа для распознования букв(написанных мышью) с помощью зондов. Думаю делать так, сохранять координаты каждого пиксля, написаной буквы, а также сохранять координаты зондов, и потом сравнивать и в зависимости от совпадений определять ту или иную букву. Сохраняю координаты в List<>, вот только возникла проблема, координаты нарисованной буквы сохраняются нормально, а вот координаты зондов почему нет. Помогите разобраться, заранее благодарю...
public partial class MainWindow : Form
    {
        public int nX, nY,kX,kY,kY1,kX1,j=0,i=1;
        private  List<MousePoint> ArrayPoint = new List<MousePoint>();
        private List<MousePoint> APoint = new List<MousePoint>();
        private void MainWindow_Load(object sender, EventArgs e)
        {
            MousePoint MP1 = new MousePoint();
            for (i = 1; i <= 190; i++)
            {
                MP1.MPoint = new Point(i, 50);
                ArrayPoint.Add(MP1);
            }
            //foreach (MousePoint MP2 in ArrayPoint)
            //    MessageBox.Show(string.Format("Зонт:{0}", MP2.MPoint));
            kX1 = 0;
            kY1 = 50;
        } 
        public MainWindow()
        {
            InitializeComponent();
        }
        private void MainWindow_MouseDown(object sender, MouseEventArgs e)
        {
            nX = e.X;
            nY = e.Y;
        }
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            Text = string.Format("{0}", e.Location);
            Pen p = new Pen(Color.Black, 1);
            Graphics g = this.CreateGraphics();
            MousePoint mpR = new MousePoint();
            if (e.Button == MouseButtons.Left)
            {
                if (e.Y <= 170)
                {
                    g.DrawLine(p, nX, nY, e.X, e.Y);
                    mpR.MPoint = new Point(e.X, e.Y);
                    APoint.Add(mpR);
                }
            }
            nX = e.X;
            nY = e.Y;
        }
        private void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            kX = e.X;
            kY = e.Y;
        }
        private void btnOch(object sender, EventArgs e)
        {
            Invalidate();
            APoint.Clear();
        }
        private void btn1(object sender, EventArgs e)
        {
        }
        private void btnRAS(object sender, EventArgs e)
        {
            Pen p = new Pen(Color.Black, 1);
            Graphics g = this.CreateGraphics();
            foreach (MousePoint MP in ArrayPoint)
            {
                g.DrawLine(p, kX1, kY1, MP.MPoint.X, MP.MPoint.Y);
                kX1 = MP.MPoint.X;
                kY1 = MP.MPoint.Y;
            }
И сам класс MousePoint:
class MousePoint
    {
        public Point MPoint { get; set; }
    }
В ArrayPoint добавляется постоянно только последняя координата, получается что ArrayPoint состоит из 190 одинаковых записей

Решение задачи: «Не сохраняются значение в список List<>»

textual
Листинг программы
 private void MainWindow_Load(object sender, EventArgs e)
        {
            MousePoint MP1;
            for (i = 1; i <= 190; i++)
            {
                MP1 = new MousePoint();
                MP1.MPoint = new Point(i, 50);
                ArrayPoint.Add(MP1);
            }
            foreach (MousePoint MP2 in ArrayPoint)
                MessageBox.Show(string.Format("Зонт:{0}", MP2.MPoint));
            kX1 = 0;
            kY1 = 50;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы