Почему уничтожается созданный в классе объект? В общем пишу на вин форме c# и столкнулся с проблемой вылета программы, сейчас постараюсь объяснить.
в основном классе формы создаю ссылку на объект на другой формы, в последствии заполняю в этой другой форме датагрид, данными из первойResult r1 = new Result();
public void test()
{
for (int i = 0; i

21 Авг 2019 в 06:58
189 +1
0
Ответы
1

В данном случае объект r1 уничтожается потому, что при вызове метода Hide() для формы r1 вызывается метод Dispose(), который освобождает все ресурсы, связанные с объектом формы. После вызова метода Dispose() объект формы уже не может быть использован.

Чтобы это обойти, можно использовать метод ShowDialog() вместо Show() при отображении формы r1. Метод ShowDialog() блокирует основную форму и не позволяет ей продолжать выполнение кода, пока отображенная форма не будет закрыта. Таким образом, при повторном открытии формы r1 будет создан новый объект и не возникнет исключение.

Также можно перенести создание объекта r1 внутрь метода test(), чтобы каждый раз при его вызове создавался новый объект формы.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир