前提・実現したいこと
・タブページを移動した際に前のタブページが使っていたリソースだけを解放したい
・各タブ以下のコントロールは全て読み取り専用でそれぞれ違うデータが入っている状態
例
USERオブジェクト数が4000になるタブページが3つあるとして
画面を開いた段階でタブ1を表示しているためにUSERオブジェクトのカウントが4000
そこからタブ2を見ると8000
続けてタブ3を見ようとすると10000を超えるため以下のエラーで落ちるとします。
これを
タブ1→タブ2で今表示されていないタブ1で使っていた分を解放
タブ2→タブ3でも同様にタブ2の分を解放
と言った具合に処理中は一瞬使用量が増えるものの
処理が終われば常に今見ている分だけの使用で済ませたいです。
発生している問題・エラーメッセージ
ウィンドウのハンドルを作成中にエラーが発生しました。
試したこと
タブ移動の際にそのタブページをタブコントロールに追加(同じ内容のタブが2つある状態)して
その後元々あった方にDisposeしたところ追加した方も一緒に消えました。
同じインスタンスだからこれじゃ駄目であろうことはやった時に分かって消してしまったのでもう残っていないため
ざっと再現したものですがソースは以下の通りです。
Dim tp As TabPage tp = TabControl.TabPages.Item(1) TabControl.TabPages.Add(tp) TabControl.TabPages.Item(1).Dispose()
New TabPageにすればタブページ自体は残りますがその下のコントロールがなくなってしまいます。
これはやはりいちいちまた全て設定していくしかないのでしょうか?
回答1件
あなたの回答
tips
プレビュー