Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Object reference not set to an instance of an object. / 4 сообщений из 4, страница 1 из 1
16.09.2004, 15:12
    #32698018
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object reference not set to an instance of an object.
Помогите разобраться:
во фрагменте 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
16.09.2004, 15:19
    #32698046
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object reference not set to an instance of an object.
Может быть, стоит попробовать вместо Form1.ActiveForm.Controls.Add() использовать this.Controls.Add()?
...
Рейтинг: 0 / 0
16.09.2004, 19:55
    #32698735
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object reference not set to an instance of an object.
Спгласен с Bigheadman, тут нужно this.Controls.Add.

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

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


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