Почему недоступен список в обработчике? - C#

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

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

public partial class Form1 : Form
    {
        public class XYZ
        {
            public XYZ(int x, int y)
            {
                X = x;
                Y = y;
                Z = 0;
            }
 
            public int X { get; set; }
            public int Y { get; set; }
            public int Z { get; set; }
        }
 
        public Form1()
        {
            InitializeComponent();
 
            List<XYZ> list = new List<XYZ>();
 
            list.Add(new XYZ(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text)));
            list.Add(new XYZ(Convert.ToInt32(textBox3.Text), Convert.ToInt32(textBox4.Text)));
            list.Add(new XYZ(Convert.ToInt32(textBox5.Text), Convert.ToInt32(textBox6.Text)));
 
            // Подсчет суммы X
            int prevY = list[0].Y; // предыдущий Y
            int sumX = list[0].X; // сумма X
            int count = 1; // кол-во сложенных
            int indexStart = 0; // индекс начала последовательности объектов с одинаковым Y
 
            for (int i = 1; i < list.Count; i++)
            {
                if (list[i].Y == prevY)
                {
                    sumX += list[i].X;
 
                    if (count == 1)
                        indexStart = i - 1;
 
                    count++;
                }
                else
                {
                    // Поле Y текущего объекта отличается от предыдущего
                    if (count > 1)
                    {
                        // Вычисляется номер строки массива для записи параметра Z
                        int index = indexStart + count / 2;
                        list[index].Z = sumX;
                    }
 
                    prevY = list[i].Y;
                    sumX = list[i].X;
                    count = 1;
                }
            }
 
            // Последняя последовательность
            if (count > 1)
            {
                //  Вычисляется номер строки массива для записи параметра Z
                int index = indexStart + count / 2;
                list[index].Z = sumX;
            }
 
            // Вывод
            foreach (XYZ xyz in list)
            {
                richTextBox1.AppendText(String.Format("X={0}, Y={1}, Z={2}\r\n", xyz.X, xyz.Y, xyz.Z));
            }
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            list[0].X = Convert.ToInt32(textBox1.Text);
        }
    }

Решение задачи: «Почему недоступен список в обработчике?»

textual
Листинг программы
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            list[0].X = Convert.ToInt32(textBox1.Text);
               fff(); //имя твоей функции, которая производит расчет
        }

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


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

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

15   голосов , оценка 3.733 из 5