В проекте VB.NET WinForms я получаю исключениеНе удается получить доступ к расположенному объекту - как исправить?
Не удается получить доступ к объекту, расположенную
при закрытии формы. Это происходит очень редко, и я не могу воссоздать его по требованию. Трассировка стека выглядит так:
Cannot access a disposed object. Object name: 'dbiSchedule'.
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.PointToScreen(Point p)
at Dbi.WinControl.Schedule.dbiSchedule.a(Boolean A_0)
at Dbi.WinControl.Schedule.dbiSchedule.a(Object A_0, EventArgs A_1)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
DbiSchedule - это контроль расписания от Dbi-tech. В форме есть таймер, который каждые несколько минут обновляет расписание на экране.
Любые идеи, что вызывает исключение, и как я могу его исправить? или даже просто возможность воссоздать его по требованию?
Hej! Спасибо за ответы на все вопросы. Мы останавливаем таймер в событии FormClosing, и мы проверяем свойство IsDisposed в компоненте расписания перед его использованием в событии Timer Tick, но это не помогает.
Это очень неприятная проблема, потому что если кто-то придумал решение, которое сработало - я не смогу подтвердить решение, потому что я не могу воссоздать проблему вручную.
Проверка на IsDisposed уменьшит, но не устранит проблему. Правильное решение - остановить таймер перед закрытием формы. – 2009-03-26 09:55:19