Object reference not set to an instance of an object - C# (215777)
Формулировка задачи:
Помоги исправить ошибку
В файле Program.cs:
В форм 1:
В Form 2:
Компилируется, но после заполнения массива t1 и при нажатии button2 во второй форме вылазиет ошибка. Если задать массив 0х0 успешно переходит на форму 3
Откуда в t1 Null? я вроде как все ячейки заполняю.
Даже ставил условие
Не помогло
Помогите кто может)
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; }
} 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();
} 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();
}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());
}
}
}