Массив объектов.
private System.Windows.Forms.Label label[];
Затем в private void InitializeComponent():
this.label = new System.Windows.Forms.Label[15];
После, задаю координаты на форме для каждого элемента массива:
for (int i=0; i<15; i++)
{
this.label.Location = new System.Drawing.Point(x,y);
y+=10;
}
При исплнениеи этого кода, выводится сообщение:
An unhandled exception of type 'System.NullReferenceException' occured in Graphik.exe.
Additional information: Object reference not set to an instance of an object.
В чём тут ошибка?
Цитата:
Originally posted by Dimarik
Нужно создать массив объектов label. В классе Forms пишу:
private System.Windows.Forms.Label label[];
Затем в private void InitializeComponent():
this.label = new System.Windows.Forms.Label[15];
После, задаю координаты на форме для каждого элемента массива:
При исплнениеи этого кода, выводится сообщение:
An unhandled exception of type 'System.NullReferenceException' occured in Graphik.exe.
Additional information: Object reference not set to an instance of an object.
В чём тут ошибка?
Нужно создать массив объектов label. В классе Forms пишу:
private System.Windows.Forms.Label label[];
Затем в private void InitializeComponent():
this.label = new System.Windows.Forms.Label[15];
После, задаю координаты на форме для каждого элемента массива:
При исплнениеи этого кода, выводится сообщение:
An unhandled exception of type 'System.NullReferenceException' occured in Graphik.exe.
Additional information: Object reference not set to an instance of an object.
В чём тут ошибка?
Ты создал массив, но не инициализировал элементы массива.
Сделай так :
Код:
this.labels = new System.Windows.Forms.Label[15];
foreach (System.Windows.Forms.Label label in labels)
{
label = new System.Windows.Forms.Label();
}
for (int i=0; i<15; i++)
{
this.label.Location = new System.Drawing.Point(x,y);
y+=10;
}
foreach (System.Windows.Forms.Label label in labels)
{
label = new System.Windows.Forms.Label();
}
for (int i=0; i<15; i++)
{
this.label.Location = new System.Drawing.Point(x,y);
y+=10;
}
И не забудь : this.Controls.AddRange(labels);
Цитата:
Originally posted by mail0
Ты создал массив, но не инициализировал элементы массива.
Сделай так :
И не забудь : this.Controls.AddRange(labels);
Ты создал массив, но не инициализировал элементы массива.
Сделай так :
Код:
this.labels = new System.Windows.Forms.Label[15];
foreach (System.Windows.Forms.Label label in labels)
{
label = new System.Windows.Forms.Label();
}
for (int i=0; i<15; i++)
{
this.label.Location = new System.Drawing.Point(x,y);
y+=10;
}
foreach (System.Windows.Forms.Label label in labels)
{
label = new System.Windows.Forms.Label();
}
for (int i=0; i<15; i++)
{
this.label.Location = new System.Drawing.Point(x,y);
y+=10;
}
И не забудь : this.Controls.AddRange(labels);
Спасибо!
Только вот за место foreach ипользовал for, т.к. foreach позволяет использовать содержимое массива в режиме "только чтение". :D