Я вижу несколько других сообщений, посвященных одной и той же проблеме, но большинство из них используют многопоточность или таймеры, чего здесь нет.Не удается получить доступ к расположенному объекту. Имя объекта: «ToolStripDropDownMenu»
Я использую простое настольное приложение VB.NET (.net 4.0) с MenuStrip
, содержащим стандартный элемент File > Exit
. Код для File> Exit item - это просто Me.Close()
. При нажатии на элемент с помощью мыши или с помощью комбинации клавиш (Alt + F, X
) вызывает следующее исключение:
{"Cannot access a disposed object. Object name: 'ToolStripDropDownMenu'."}
Интересно, что закрытие того же приложения через Alt + F4
последовательности или кнопки закрытия окна работает плавно.
Я проверил трассировку стека и, похоже, пытается создать дескриптор этого пункта меню ПОСЛЕ закрытия приложения. Любое понимание было бы очень оценено.
Дважды проверьте, что у вас нет кода, который обрабатывает события закрытия или что-то в этом роде. Посмотрите на трассировку стека для методов пользовательского кода. –
Я проверил трассировку стека подробно, и нет линии, принадлежащей моему коду. – dotNET
Если File-> Exit должен закрыть приложение, попробуйте 'Application.Exit' вместо этого. Похоже, что форма close/destroy происходит, тогда код приложения Exit пытается сделать это снова. – Plutonix