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());
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д