Object reference not set to an instance of an object - C# (215777)

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

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

Помоги исправить ошибку В файле Program.cs:
namespace WindowsFormsApplication2
{
    static class Data
    {
        
        public static TextBox[,] t1 { get; set; }
        public static TextBox[,] t2 { get; set; }
        public static TextBox[,] t3 { get; set; }
        public static int n { get; set; }
        public static int m { get; set; }
        public static double[,] x { get; set; }
        public static double[,] irr { get; set; }
        public static double[,] npv { get; set; }
        public static double[] sumnpv { get; set; }
                       
    }
В форм 1:
  public void button1_Click(object sender, EventArgs e)
        {
            Data.n = int.Parse(textBox1.Text);
            Data.m = int.Parse(textBox2.Text);
            form2.textBox102.Text = textBox1.Text;
            form2.textBox101.Text = textBox2.Text;

            Data.t1 = new TextBox[Data.n, Data.m];// создаём двумерный масив текстбоксов
            for (i = 0; i < Data.n; i++)
                for (j = 0; j < Data.m; j++)// проходим по елементам масива
                {
                    Data.t1[i, j] = new TextBox();//для каждого елемента массива создаем текстбокс
                    Data.t1[i, j].Location = new Point(i * 60 + 121, j * 28 + 81);//привязываем расположение тексбоксов к индексам масива чтоб они не налаживались друг на друга
                    Data.t1[i, j].Size = new Size(51, 20);//размеры текстбокса
                    form2.panel1.Controls.Add(Data.t1[i, j]);
                }
            form2.Show();
            
        }
В Form 2:
 public void button2_Click(object sender, EventArgs e)
        {
            for (i = 0; i < Data.n; i++)
                for (j = 0; j < Data.m; j++)
                {
                    if (Data.t1[i, j].Text == null)
                        Data.t1[i,j].Text = "0";
                    
                    Data.x[i, j] = Convert.ToDouble(Data.t1[i, j].Text);
                    Data.npv[i, j] = Data.x[i, j] * System.Math.Pow(1.1, 1 + j);
                    Data.sumnpv[i] += Data.npv[i, j];
                }
 
            Data.t2 = new TextBox[Data.n, 6];// создаём двумерный масив текстбоксов
            for (h = 0; h < Data.n; h++)
                for (u = 0; u < 6; u++)// проходим по елементам масива
                {
                    
                    Data.t2[h, u] = new TextBox();//для каждого елемента массива создаем текстбокс
                    Data.t2[h, u].Location = new Point(h * 60 + 121, u * 28 + 81);//привязываем расположение тексбоксов к индексам масива чтоб они не налаживались друг на друга
                    Data.t2[h, u].Size = new Size(51, 20);//размеры текстбокса
                    form3.panel2.Controls.Add(Data.t2[h, u]); //добавляем текстбоксы на панель
                    /*Data.t2[h, 0].Text = Convert.ToString(Data.sumnpv[h]);*/
                }
                            
            form3.Show();
            form3.Focus();

        }
Компилируется, но после заполнения массива t1 и при нажатии button2 во второй форме вылазиет ошибка. Если задать массив 0х0 успешно переходит на форму 3 Откуда в t1 Null? я вроде как все ячейки заполняю. Даже ставил условие
if (Data.t1[i, j].Text == null)
                        Data.t1[i,j].Text = "0";
Не помогло Помогите кто может)

Решение задачи: «Object reference not set to an instance of an object»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
 
 
namespace WindowsFormsApplication2
{
    
    public class Data
    {
        
        public static TextBox[,] t1 { get; set; }
        public static TextBox[,] t2 { get; set; }
        public static TextBox[,] t3 { get; set; }
        public static int n { get; set; }
        public static int m { get; set; }
        public static double[,] x { get; set; }
        public static double[,] irr { get; set; }
        public static double[,] npv { get; set; }
        public static double[] sumnpv { get; set; }
                       
    }
    static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

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


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

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

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