tanahmad Ответов: 1

значение типа 'integer' не может быть преобразовано в 'system.windows.forms.textbox'


Я пытаюсь переместить значение ячеек datagridview в массив текстовых полей. Код выглядит примерно так.
For i = 1 To 11
   mAmt = (dgActuals.Rows(xRow).Cells(xColumn).Value)
   If Not mAmt = 0 Then
      txtFigure(i, 0).Text = mAmt
      xColumn += 1
   End If
Next i

При запуске он показывает, что Nullreferenceexception был необработан
Ссылка на объект не устанавливается на экземпляр объекта.

Не мог бы кто-нибудь помочь, пожалуйста.

Ольга

1 Ответов

Рейтинг:
2

Sergey Alexandrovich Kryukov

Вам всегда нужно предоставить исчерпывающую информацию об ошибке, прежде всего — показать строку кода и указать, где находится источник ошибки. Скорее всего, вы попытались присвоить экземпляру класса целочисленное значение TextBox. Вы должны назначить MyTextBox.Text = mAmt.ToString(...). Возможно, txtFigure(i, 0).Text имеет тип TextBox

Вам действительно нужно изучить самые основы программирования в целом и ООП в частности, прежде чем вы действительно сможете продолжить. Изучите типы и объекты/экземпляры, классы и их члены, статические и экземплярные члены, систему типов .NET, бокс, ссылки и типы значений и т. д.

—СА


Thomas Daniels

Комментарий от ОП, опубликованный как не ответ (Решение 2):
Да, txtfigure(i,0).текст имеет тип текстового поля.

Я пробовал txtFigure(i, 0).Текст = МАМТ.ToString, но все же ошибка {"ссылка на объект не установлена на экземпляр объекта".} появляется только в этой строке.

С уважением

Sergey Alexandrovich Kryukov

- Нет! Будьте внимательны! Это уже не ошибка-это исключение. Во-первых, вы не показываете реальный код:
Либо txtFigure(i, 0).Текст-это текстовое поле, то строка-тип свойства txtFigure(i, 0).Text.Text Видите разницу?
Или ваше первое утверждение неверно, txtFigure(i, 0) это текстовое поле, то строка-тип свойства txtFigure(i, 0).

Ты это понимаешь? Но теперь исключение показывает, что объект является нулевым, чем бы он ни был. Не строка (которая не имеет значения), не mAmt (которая не обнуляется, а mAmt.Метод toString-это не нуль), но экземпляр объекта TextBox себя. Вы не создали объект с помощью конструктора.

Итак, вы знаете, что такое класс? как создать экземпляр с помощью конструктора? Что такое конструктор, как он работает?

Честно говоря, перестаньте делать то, что вы делаете, и научитесь программировать, иначе вы утонете навсегда...

--СА

Thomas Daniels

Хорошо. Я ответил на отсутствие ответа от ОП.

Sergey Alexandrovich Kryukov

Спасибо, что написали этот комментарий.
Я удалил не-ответ. Извините, если я удалил ваш комментарий вместе с ним, но я думал, что это не что иное, как предупреждение о неправильном способе комментирования. Если вы хотите обратиться к OP, прокомментируйте свой комментарий выше-OP все равно получит уведомление.
--СА