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

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

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

Помоги исправить ошибку В файле Program.cs:
Листинг программы
  1. namespace WindowsFormsApplication2
  2. {
  3. static class Data
  4. {
  5. public static TextBox[,] t1 { get; set; }
  6. public static TextBox[,] t2 { get; set; }
  7. public static TextBox[,] t3 { get; set; }
  8. public static int n { get; set; }
  9. public static int m { get; set; }
  10. public static double[,] x { get; set; }
  11. public static double[,] irr { get; set; }
  12. public static double[,] npv { get; set; }
  13. public static double[] sumnpv { get; set; }
  14. }
В форм 1:
Листинг программы
  1. public void button1_Click(object sender, EventArgs e)
  2. {
  3. Data.n = int.Parse(textBox1.Text);
  4. Data.m = int.Parse(textBox2.Text);
  5. form2.textBox102.Text = textBox1.Text;
  6. form2.textBox101.Text = textBox2.Text;
  7.  
  8. Data.t1 = new TextBox[Data.n, Data.m];// создаём двумерный масив текстбоксов
  9. for (i = 0; i < Data.n; i++)
  10. for (j = 0; j < Data.m; j++)// проходим по елементам масива
  11. {
  12. Data.t1[i, j] = new TextBox();//для каждого елемента массива создаем текстбокс
  13. Data.t1[i, j].Location = new Point(i * 60 + 121, j * 28 + 81);//привязываем расположение тексбоксов к индексам масива чтоб они не налаживались друг на друга
  14. Data.t1[i, j].Size = new Size(51, 20);//размеры текстбокса
  15. form2.panel1.Controls.Add(Data.t1[i, j]);
  16. }
  17. form2.Show();
  18. }
В Form 2:
Листинг программы
  1. public void button2_Click(object sender, EventArgs e)
  2. {
  3. for (i = 0; i < Data.n; i++)
  4. for (j = 0; j < Data.m; j++)
  5. {
  6. if (Data.t1[i, j].Text == null)
  7. Data.t1[i,j].Text = "0";
  8. Data.x[i, j] = Convert.ToDouble(Data.t1[i, j].Text);
  9. Data.npv[i, j] = Data.x[i, j] * System.Math.Pow(1.1, 1 + j);
  10. Data.sumnpv[i] += Data.npv[i, j];
  11. }
  12. Data.t2 = new TextBox[Data.n, 6];// создаём двумерный масив текстбоксов
  13. for (h = 0; h < Data.n; h++)
  14. for (u = 0; u < 6; u++)// проходим по елементам масива
  15. {
  16. Data.t2[h, u] = new TextBox();//для каждого елемента массива создаем текстбокс
  17. Data.t2[h, u].Location = new Point(h * 60 + 121, u * 28 + 81);//привязываем расположение тексбоксов к индексам масива чтоб они не налаживались друг на друга
  18. Data.t2[h, u].Size = new Size(51, 20);//размеры текстбокса
  19. form3.panel2.Controls.Add(Data.t2[h, u]); //добавляем текстбоксы на панель
  20. /*Data.t2[h, 0].Text = Convert.ToString(Data.sumnpv[h]);*/
  21. }
  22. form3.Show();
  23. form3.Focus();
  24.  
  25. }
Компилируется, но после заполнения массива t1 и при нажатии button2 во второй форме вылазиет ошибка. Если задать массив 0х0 успешно переходит на форму 3 Откуда в t1 Null? я вроде как все ячейки заполняю. Даже ставил условие
Листинг программы
  1. if (Data.t1[i, j].Text == null)
  2. Data.t1[i,j].Text = "0";
Не помогло Помогите кто может)

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

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows.Forms;
  5.  
  6.  
  7. namespace WindowsFormsApplication2
  8. {
  9.    
  10.     public class Data
  11.     {
  12.        
  13.         public static TextBox[,] t1 { get; set; }
  14.         public static TextBox[,] t2 { get; set; }
  15.         public static TextBox[,] t3 { get; set; }
  16.         public static int n { get; set; }
  17.         public static int m { get; set; }
  18.         public static double[,] x { get; set; }
  19.         public static double[,] irr { get; set; }
  20.         public static double[,] npv { get; set; }
  21.         public static double[] sumnpv { get; set; }
  22.                        
  23.     }
  24.     static class Program
  25.     {
  26.         /// <summary>
  27.         /// Главная точка входа для приложения.
  28.         /// </summary>
  29.         [STAThread]
  30.         static void Main()
  31.         {
  32.             Application.EnableVisualStyles();
  33.             Application.SetCompatibleTextRenderingDefault(false);
  34.             Application.Run(new Form1());
  35.         }
  36.     }
  37. }

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


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

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

7   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы