powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Object reference not set to an instance of an object.
4 сообщений из 4, страница 1 из 1
Object reference not set to an instance of an object.
    #32698018
Dr. Yes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите разобраться:
во фрагменте Form1_Load() у меня находится код, который должен создавать 16 кнопок на главной форме (Form1).

Но во время выполнения Form1.ActiveForm.Controls.Add(...) выскакивает ошибка
Object reference not set to an instance of an object.
Я так полагаю, что в этот момент сама форма ещё не создана. Невозможно ни обновить её (Refresh()) и вообще почти ничего с ней сделать. Всегда выскакивает эта ошибка.

Подскажите, пожалуйста, каким ещё образом можно при загрузке формы создать на ней различные контролы?

Вот мой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
...
this.Load += new System.EventHandler(this.Form1_Load);
...

private void Form1_Load(object sender, System.EventArgs e)
{
	string[] a = new string[ 4 ]{"A", "B", "C", "D"};
	string[] b = new string[ 4 ]{"1", "2", "3", "4"};
	
	Button btn;
	for(int i =  0 ; i <  4 ; i++)
	{
		for(int j =  0 ; j <  4 ; j++)
		{
			btn = new Button();
			btn.Name = "btn" + i.ToString() + j.ToString();
			btn.Width =  50 ;
			btn.Height =  50 ;
			btn.Location = new Point(i* 50 , j* 50 );
			btn.Text = a[i] + b[j];
			btn.CreateControl();
			btn.FlatStyle = System.Windows.Forms.FlatStyle.System;
			btn.Click += new System.EventHandler(this.BtnClick);
			
			Form1.ActiveForm.Controls.Add(btn);
		}
	}
}
...
Рейтинг: 0 / 0
Object reference not set to an instance of an object.
    #32698046
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть, стоит попробовать вместо Form1.ActiveForm.Controls.Add() использовать this.Controls.Add()?
...
Рейтинг: 0 / 0
Object reference not set to an instance of an object.
    #32698735
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спгласен с Bigheadman, тут нужно this.Controls.Add.

Form1.ActiveForm - предоставляет возможность получить ссылку на активный экземпляр формы. Сама форма уже создана(Load вызывается после конструктора), но пока еще не активна, поэтому и нет ссылки.

Magnus
...
Рейтинг: 0 / 0
Object reference not set to an instance of an object.
    #32699338
Dr. Yes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Уже разобрался
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Object reference not set to an instance of an object.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]