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