2016-05-30 2 views
0

Итак, я запускаю ошибку NullReferenceException в своем коде.Невозможно воссоздать ошибку NullReferenceException

CreatureNumber = CreatureNumberLabel.Text 
If YouOrEnemyCreatureLabel.Text = "You" Then 
Person = "Your" 
End If 
If YouOrEnemyCreatureLabel.Text = "Enemy" Then 
Person = "Enemy" 
End If 

'The line below is giving me the error. "_" Added for convenience. 
Simulator.Controls(Person & "Creature" & CreatureNumber & "NameLabel").Text = _ 
    CreatureNameComboBox.Text 

Люди и CreatureNumber оба были объявлены публично, и я должен был поставить «Simulator» перед так как это UserForm, который содержит элемент управления, который я хочу, чтобы изменить текст.

Проблема в том, что когда я пытался воссоздать эту проблему (используя 2 разных пользовательских формы), она работала именно так, как я ее намеревался.

Number = TextBox1.Text 
Form2.Controls("Label" & Number).Text = TextBox2.Text 

Опять же, номер был объявлен публично. Итак, почему приведенный выше код работает нормально, но первый дает мне ошибку NullReferenceException?

+0

Возможный дубликат [? Что такое NullReferenceException, и как это исправить] (HTTP: // StackOverflow. ком/вопросы/4660142/что-это-NullReferenceException-и-как-делать-я-Fix-It) –

ответ

0

Я нашел ответ на мой собственный вопрос^~^

Оказывается, контроль, который я пытался редактировать был в панели в первом примере (тот, который дает мне ошибку), но а не во втором. Таким образом, исправление было просто изменить:

Simulator.Controls(Person & "Creature" & CreatureNumber & "NameLabel").Text =_ 
    CreatureNameComboBox.Text 

к этому:

Simulator.Panel1.Controls(Person & "Creature" & CreatureNumber & "NameLabel").Text = _ 
    CreatureNameComboBox.Text 
Смежные вопросы