ObjectDisposedException について
初級者向けにおさらいします。
目次
この例外エラーの説明
Object Disposed(破棄された後の変数(オブジェクト)を操作しようとすることで発生する)Exception です。
事例とその対処方法
例外エラーは、想定外の扱われ方をすると発生して飛んで来ます。それは命令の使い方が間違っていたり、存在しないデータを扱おうとしていたり、アカウント権限を越えたアクセスをしようとしていたり(Windows 側やウェブ側の話だったり)、サービスが動いていないのに連携しようとしたり、製品上の仕様考慮モレだったり、そういう系です。
こうなっている前提のはずだから、こうやろうとしたのに、実際はここがこうなっているからダメじゃん!こういう場合の処理が無いじゃん!みたいなコードになっていませんか?
Form
オブジェクトを破棄するということは、もうその変数は使わないということです。その後で使おうとするのはダメです。
Dim frm As New Form frm.Dispose() frm.Show()
System.ObjectDisposedException: '破棄されたオブジェクトにアクセスできません。 オブジェクト名 'Form' です。'
再度使いたい場合は、破棄チェックをしてから使用するようにします。またはインスタンス生成し直します。
If frm IsNot Nothing AndAlso Not frm.IsDisposed Then frm.Show() End If