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 のスケジュール コントロールです。フォームには、数分ごとに画面上のスケジュールを更新するタイマーがあります。
例外の原因と、それを修正する方法について何か考えはありますか? または、オンデマンドで再作成できるだけですか?
へー!すべての答えをありがとう。FormClosing イベントでタイマーを停止し、Timer Tick イベントで使用する前にスケジュール コンポーネントの IsDisposed プロパティをチェックしますが、役に立ちません。
誰かがうまくいく解決策を思いついたとしても、手動で問題を再現できないため、解決策を確認できないため、これは本当に厄介な問題です。