Я работаю над проектом, в котором я создал пользовательский элемент управления, и я пытаюсь его добавить и найти в групповом поле.C# - Изменить местоположение пользовательского элемента управления внутри GroupBox (возвращает исключение для ссылочной ссылки)
Действия по инициализации и добавлению элемента управления в поле работают нормально, но затем все, что я пытаюсь переместить или изменить размер элемента управления, вызывает исключение.
//initialise using object in outputs collection
VitalsVisual vitalsVisual = vitalOutputs.getVitalsVisual();
//add to relevant groupbox
grpbxIntraOp.Controls.Add(vitalsVisual);
//change location (coordinates within groupbox)
vitalsVisual.Location = new Point(249, 256); //THROWS EXCEPTION
//resize
vitalsVisual.Size = new Size(494, 342); //THROWS EXCEPTION IF REACHED
Все я ни на одном из указанных линий «ссылка на объект не указывает на экземпляр объекта». Я действительно не понимаю этого, поскольку это указывает на то, что VitalsVisual vitalsVisual
не инициализирован, но вызывается конструктор и команда Controls.Add()
работает. Разумеется, если бы он не был инициализирован, эта команда создавала бы одно и то же исключение.
Может ли кто-нибудь определить, что может быть неправильным здесь? Было бы очень полезно толчок в правильном направлении!
Thanks, Mark
Получает ли 'getVitalsVisual' фактическое значение или возвращает значение null? Что наследует элемент управления VitalsVisual? – kagelos
Предлагаемый ответ объясняет, почему вы не смогли отладить это правильно, но на самом деле не решили _problem_, то есть у вас есть нулевая ссылка. Ознакомьтесь с обширным советом, найденным в отмеченном дубликате, о том, как отлаживать «NullReferenceException», чтобы вы могли перейти к точке, где ваш вопрос более конкретный, чем «почему я получаю это исключение?». Если у вас все еще есть проблемы в этот момент, задайте новый вопрос, в котором вы предоставили хороший [mcve], который надежно воспроизводит проблему, а также точное объяснение того, с чем конкретно вы сталкиваетесь. –
Не дубликат, как он ошибочно предположил, что элемент управления мог добавить в коллекцию Controls, не может быть нулевым. Я объяснил, почему это неверное предположение. Отладка 'getVitalsVisual' - это следующий шаг, но не вопрос здесь, действительно .. – TaW